nodejs中几个excel模块的简单对比
发布于 1 年前 作者 mosaic101 7169 次浏览 来自 分享

找了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而言,更简单更酷
11 回复

good<br/><br/><a class=“form” href=“https://github.com/shinygang/Vue-cnodejs”>I‘m webapp-cnodejs-vue</a>

说句实话,除非实在要求要xlsx,否则就用csv(如果是多表单,可以生成多个文件一起压缩掉),速度比xlsx快太多了。 毕竟xlsx还要解码,编码,都是要时间。

来自酷炫的 CNodeMD

马克

来自酷炫的 CNodeMD

之前由于项目的需要,基于js-xlsx封装了一个excel-class模块: https://github.com/laoqiren/excel-class欢迎指教

我们正在写一个,目前只支持导出,有兴趣可以加入哈,项目地址:https://github.com/d-band/better-xlsx

回到顶部