vue导入excel进度条_在vue中导入Excel表
使用的库js-xlsx 纯JS即可读取和导出excel的工具库https://github.com/SheetJS/js-xlsx
安装
直接下载dist目录下有很多个JS文件,一般情况下用xlsx.core.min.js就够了,xlsx.full.min.js则是包含了所有功能模块。直接通过script引用即可。
npm安装 npm install xlsx
在main.js中引引入 import XLSX from "xlsx/dist/xlsx.full.min";
在所需页面引入 import XLSX from "xlsx";
使用
这里使用的是element组件
accept=".xlsx"
:auto-upload="false"
:show-file-list="false"
:on-change="uploadChg"
>
导入
readWorkbookFromLocalFile(file, callback) {
// console.log('file', file)
let reader = new FileReader();
// onload 文件读取成功完成时触发
reader.onload = function(e) {
let data = e.target.result;
// 读取excel主要是通过XLSX.read(data, {type: type});方法来实现
// binary: BinaryString格式(byte n is data.charCodeAt(n)); 日期格式需要加上 cellDates: true 参数
let workbook = XLSX.read(data, { type: "binary", cellDates: true });
if (callback) callback(workbook);
};
// readAsBinaryString file 将文件读取为二进制码
reader.readAsBinaryString(file);
}
// 导入
uploadChg(file) {
console.log(file);
this.readWorkbookFromLocalFile(file.raw, workbooks => {
console.log("workbooks", workbooks);
let sheetNames = workbooks.SheetNames;
let worksheet = workbooks.Sheets[sheetNames[0]]; // 取第一张表
// sheet_to_json 输出json格式
// defval: "" 值为空时 key缺失
const dataJson = XLSX.utils.sheet_to_json(worksheet, {
row: false,
defval: ""
});
this.tableTitle = [];
for (let i in dataJson[0]) {
this.tableTitle.push(i); // 表头
}
console.log("tableTitle", this.tableTitle);
console.log("dataJson", dataJson);
// !merges s: 开始 e: 结束 r: 行 c: 列
if (worksheet["!merges"]) {
let temp = [];
worksheet["!merges"].forEach(item => {
let colspan =
item.e.r - item.s.r === 0 ? 1 : item.e.r - item.s.r + 1;
let rowspan =
item.e.c - item.s.c === 0 ? 1 : item.e.c - item.s.c + 1;
let a = { row: item.s.r - 1, colspan: colspan, rowspan: rowspan };
temp.push(a);
});
console.log("temp", temp);
temp.forEach(o => {
Object.assign(dataJson[o.row], o);
});
console.log("dataJson", dataJson);
this.tableData = dataJson;
} else {
this.tableData = dataJson;
}
});
}
{{ o }}
{{ item[o] }}
vue导入excel进度条_在vue中导入Excel表相关推荐
- java excel进度条_导出excel 用easyui显示进度条(也适用于其他框架遮罩层,进度条)...
每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面,要么狂点导出.感知太差了~甚至用户误操作会导致服务器崩溃. 所以 ...
- vue导出excel加一个进度条_使用vue导出excel文件
今天再开发中遇到一件事情,就是怎样用已有数据导出excel文件,网上有许多方法,有说用数据流的方式,https://www.cnblogs.com/yeqrblog/p/9758981.html,但是 ...
- vue 圆形百分比进度条_快速构建一个圆形的进度条
在一些特别生的网站上,用户需要一个可视化的是示,以表明网站资源仍然在加载.从Spinner到Skeleton屏幕有不同的方法来解决这类的用户体验效果. 如果我们使用的是开箱即用的解决方案,它为我们提供 ...
- mysql导入数据显示进度条_导入数据思路+进度条
/// ///基础数据导入/// private voidLoadBasicData() {this.NowCount = 0;this.AllCount = 0;this.hasResult = f ...
- python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...
1. 错误描述 之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自 ...
- 计算机右键无法新建excel,右键新建中没有excel怎么删除_右键新建中没有excel怎么办...
[www.gpsvo.com--电脑安全] 在电脑中,想要点击鼠标右键新建一个excel表格时,却没有这个程序,怎么办?下面随小编一起来看看吧. 右键新建中没有excel的解决方法1 同时按下wind ...
- vue导入excel进度条_纯前端 vue+ js-xlsx 导入excel表格
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-e ...
- vue导出excel加一个进度条_运用vue导出excel碰到的那些坑
需求: Vue+element UI el-table下的导出当前一切数据到一个excel文件里. 先根据网上的要领,看看有哪些坑 准备工作: 1.装置依靠:yarn add xlsx file-sa ...
- python如何导入多个文件_在python中导入多个文件
我正在尝试创建一个脚本,用户可以选择一个文件夹中的1个或所有文件(以"模拟"Matlab中uigetfile的多重选择打开).然后,脚本将询问用户是否要从另一个位置导入数据,imp ...
最新文章
- NHibernate 2.0 Beta 1 Released和一些工具
- 对于七段数码数字模型进行改进:一个关键的数字1的问题
- 理解AngularJS中的依赖注入
- MySQL添加、删除字段
- 轻量级的Canvas类库zrender使用笔记 :简单自定义图件开发
- android 代码植入,Android Studio之Debug运行期代码植入的方法
- LeetCode 刷题隔天忘怎么办?
- 改变计算技术的9个伟大算法
- java web导出excel表格,java 网页导出excel表格数据-java 将页面内容写入excel文件中并可以将其下载到......
- Java Web应用程序开发-深入体验Java Web开发内幕之初步
- Crypto菜狗的学习日志之古典密码(一)
- 利用Minia软件对基因组测序二代数据的初步组装
- java解决数独_Java解决“数独”之三
- 百趣代谢组学文献分享:大麦盐胁迫响应机制的组学分析
- App测试环境搭建全过程,包含JAVA JDK配置、Android SDK、、Appium、Node.js、模拟器配置【究极保姆级】还不会我吃奥利给
- C语言程序设计-算数运算符、赋值运算符、逗号运算符及表达式
- 优秀的数据产品经理需要掌握哪些技能?
- winscp连接nas root账户拒绝访问_树莓派 3B 结合 NextCloud PI 搭建皮米级 NAS 家庭储存...
- 从 C++ 定义 QML 类型
- 数据库连接的7个步骤