使用的库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表相关推荐

  1. java excel进度条_导出excel 用easyui显示进度条(也适用于其他框架遮罩层,进度条)...

    每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面,要么狂点导出.感知太差了~甚至用户误操作会导致服务器崩溃. 所以 ...

  2. vue导出excel加一个进度条_使用vue导出excel文件

    今天再开发中遇到一件事情,就是怎样用已有数据导出excel文件,网上有许多方法,有说用数据流的方式,https://www.cnblogs.com/yeqrblog/p/9758981.html,但是 ...

  3. vue 圆形百分比进度条_快速构建一个圆形的进度条

    在一些特别生的网站上,用户需要一个可视化的是示,以表明网站资源仍然在加载.从Spinner到Skeleton屏幕有不同的方法来解决这类的用户体验效果. 如果我们使用的是开箱即用的解决方案,它为我们提供 ...

  4. mysql导入数据显示进度条_导入数据思路+进度条

    /// ///基础数据导入/// private voidLoadBasicData() {this.NowCount = 0;this.AllCount = 0;this.hasResult = f ...

  5. python导入类有红线_解决Python中导入自己写的类,被划红线,但不影响执行的问题...

    1. 错误描述 之前在学习Python的过程中,导入自己写的包文件时,与之相关的方法等都会被划红线,但并不影响代码执行,如图: 看着红线确实有点强迫症,并且在这个过程当时,当使用该文件里的方法时不会自 ...

  6. 计算机右键无法新建excel,右键新建中没有excel怎么删除_右键新建中没有excel怎么办...

    [www.gpsvo.com--电脑安全] 在电脑中,想要点击鼠标右键新建一个excel表格时,却没有这个程序,怎么办?下面随小编一起来看看吧. 右键新建中没有excel的解决方法1 同时按下wind ...

  7. vue导入excel进度条_纯前端 vue+ js-xlsx 导入excel表格

    accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-e ...

  8. vue导出excel加一个进度条_运用vue导出excel碰到的那些坑

    需求: Vue+element UI el-table下的导出当前一切数据到一个excel文件里. 先根据网上的要领,看看有哪些坑 准备工作: 1.装置依靠:yarn add xlsx file-sa ...

  9. python如何导入多个文件_在python中导入多个文件

    我正在尝试创建一个脚本,用户可以选择一个文件夹中的1个或所有文件(以"模拟"Matlab中uigetfile的多重选择打开).然后,脚本将询问用户是否要从另一个位置导入数据,imp ...

最新文章

  1. NHibernate 2.0 Beta 1 Released和一些工具
  2. 对于七段数码数字模型进行改进:一个关键的数字1的问题
  3. 理解AngularJS中的依赖注入
  4. MySQL添加、删除字段
  5. 轻量级的Canvas类库zrender使用笔记 :简单自定义图件开发
  6. android 代码植入,Android Studio之Debug运行期代码植入的方法
  7. LeetCode 刷题隔天忘怎么办?
  8. 改变计算技术的9个伟大算法
  9. java web导出excel表格,java 网页导出excel表格数据-java 将页面内容写入excel文件中并可以将其下载到......
  10. Java Web应用程序开发-深入体验Java Web开发内幕之初步
  11. Crypto菜狗的学习日志之古典密码(一)
  12. 利用Minia软件对基因组测序二代数据的初步组装
  13. java解决数独_Java解决“数独”之三
  14. 百趣代谢组学文献分享:大麦盐胁迫响应机制的组学分析
  15. App测试环境搭建全过程,包含JAVA JDK配置、Android SDK、、Appium、Node.js、模拟器配置【究极保姆级】还不会我吃奥利给
  16. C语言程序设计-算数运算符、赋值运算符、逗号运算符及表达式
  17. 优秀的数据产品经理需要掌握哪些技能?
  18. winscp连接nas root账户拒绝访问_树莓派 3B 结合 NextCloud PI 搭建皮米级 NAS 家庭储存...
  19. 从 C++ 定义 QML 类型
  20. 数据库连接的7个步骤

热门文章

  1. 深度解析OSPF(开放最短路径优先协议)
  2. 小型大写字母的用武之处
  3. 关于教育类app开发,未来该如何发展?
  4. 经济学计算机会成本,经济学思维方式之二——机会成本、经济利润
  5. 在cmd中安装MySQL,MySQL(桌面图标版)
  6. MYSQL的启动图标不见了,怎么办?很简单,一步到位!!
  7. PointVector
  8. Understand Tensor Deeply
  9. python自动化,小程序fiddler抓包
  10. ThinkPHP源码学习之I方法