背景简介
在将一个表格文件上传到服务器上之前,JS读取表格文件并将文件内容输出到页面中
vue项目
第三方
exceljs
- 安装
npm install exceljs
- 插件使用
element ui
- 文件选择
- el-upload
- 数据展示
- el-table
代码以及说明
import Excel from 'exceljs'; // 引入exceljs // 预览表格文件 previewFile(){ let _this=this // 获取选择的文件 let file = this.file let reader = new FileReader(); // 在读取器加载资源停止进度时读取表格文件 reader.onloadend = event=>{ // arrayBuffer为加载后的资源 let arrayBuffer = reader.result; let workbook = new Excel.Workbook(); workbook.xlsx.load(arrayBuffer).then((workbook)=> { let result = '' // 只读取文档的第一个sheet页 let sheet= workbook.worksheets[0] let tableData=[] // 获取每一行的数据 sheet.eachRow((row, rowNumber)=> { let data=[] row.values.forEach((val,valIdx)=>{ data.push(val) }) tableData.push(data) _this.tableData=tableData }) }) }; reader.readAsArrayBuffer(file); },
参考链接
在浏览器上打开、预览Excel xlsx表格文件
现在的HTML5,有了FileReader文件读写API, 真是让javascript的能力大幅提升。
解析zip压缩文件、解析Excel xlsx 表格文档各种文件预览,实现起来也有了可能性,以前的js是完全无法实现的。
github找了一下,找到3个热门的excel的js开源库。
xlsx.js
Github: https://github.com/SheetJS/js-xlsx这个是最热门的了。
exceljs
Github: https://github.com/exceljs/exceljsxlsx-populate.js
Github: https://github.com/dtjohnson/xlsx-populateExcel表格相关JS库 demo示例