前端导出excel
原来在项目中导出excel使用的是xlsx 库,使用中发现该库无法给要导出的excel添加样式(据说pro版可以,但并找到pro版  ̄□ ̄||),所以尝试了新的库xlsx-style,在使用xlsx-style库的过程中遇到了一下坑,特此记录一下📝
下载xlsx-style
直接使用npm下载就行
1 | npm install --save xlsx-style |
在项目中引用
1 | import XLSX from 'xlsx-style' |
😮 然后此时编译运行,居然就出错了……😭
报错如下
1 | ERROR Failed to compile with 1 errors |
直接看 node_modules 文件下的xlsx-style我们可以发现 cptable.js文件确实是不存在存在的,这里其实源码有误,依赖中将:node_modules\xlsx-style\dist\cpexcel.js js文件里,第807行,var cpt = require(’./cpt’ + ‘able’);有误,改成var cpt = cptable;就可以正确启动程序了。
但是我们并不想修改源码,所以让我们通过修改webpack的配置达到这一目的。
修改方案:修改webpack的配置,在webpack的配置文件中添加如下代码(如果你使用的是vue,在webpack.base.conf.js中添加):
1 | externals:{ |
导出文件
处理数据
xlsx-style 需要的数据格式大致如下:
1 | { |
所以我们需要吧数据处理成这样的格式,这里我自己写了一个处理并导出表格的函数
1 | import XLSX from 'xlsx-style' |