找了4个star较多的且还在维护的excel模块测试一下,导入问题不大,主要测试的是导出功能。
选择
- exceljs (支持复杂导出,功能齐全;文档写的太烂,反正我是看了大半天,github地址)
- ejsexcel (支持复杂导出,功能齐全;国内大牛的开源项目,基于ejs模板渲染,github地址)
- node-xlsx (不支持复杂导出;基于js-xlsx,功能比较简单,github地址)
- excel-export (不支持复杂导出;需要一个xml作为导出模板,比较麻烦;且超过10个月没维护,github地址)
工具
- node_7.0.0
- 31056条数据(一条记录,22个字段)
结果
简单的处理数据源并生成.xlsx文件,耗时仅为excel模块处理数据的时间
- excel-export: 4314ms
- ejsexcel: 5128ms
- exceljs: 3250ms
- node-xlsx: 3353ms
耗时比较: exceljs < node-xlsx < excel-export < ejsexcel
结论
- 简单的导出就用node-xlsx模块,excel-export貌似已不维护,在生产上已出现过几次未知崩溃
- 复杂的导出可以优先选择ejsexcel,相对于exceljs而言,更简单更酷
mark
good<br/><br/><a class=“form” href=“https://github.com/shinygang/Vue-cnodejs”>I‘m webapp-cnodejs-vue</a>
mk
mark good!
mark
说句实话,除非实在要求要xlsx,否则就用csv(如果是多表单,可以生成多个文件一起压缩掉),速度比xlsx快太多了。 毕竟xlsx还要解码,编码,都是要时间。
来自酷炫的 CNodeMD
马克
来自酷炫的 CNodeMD
之前由于项目的需要,基于js-xlsx封装了一个excel-class模块: https://github.com/laoqiren/excel-class欢迎指教
mark!
基于exceljs封装的模块-。-, https://github.com/richardwei195/tb-excel
我们正在写一个,目前只支持导出,有兴趣可以加入哈,项目地址:https://github.com/d-band/better-xlsx
mark