在前端生成excel功能对比和选择

2018-10-09  本文已影响264人  向布谷鸟说早安

目标:

提供一组数据(包括图片),要能在前端或者用node生成一个excel表格。

解决方案:

A:js-xlsx

下载量最多,更新最频繁,但是不支持图片导入。

介绍:https://www.npmjs.com/package/xlsxhttps://segmentfault.com/a/1190000011057149

源码:https://github.com/tealeg/xlsx

相关教程:https://www.jianshu.com/p/74d405940305

B:ActiveXObject

只支持IE。

ExcelJS

只能用在node环境中。

经过调研发现:前端的处理能力有限,最好还是通过node来调用,在后端操作excel。只能操作csv和xlsx。

node操作excel的库目前这个库下载量最多,更新最频繁。

介绍:https://www.npmjs.com/package/exceljs#images

源码:https://github.com/guyonroche/exceljs#readme

D:其它框架

1.wijmo:

收费

介绍:https://www.cnblogs.com/bubugao/p/js4.html

2.spreadjs:

收费,主要功能是把excel嵌入到页面里,和目前的功能不匹配

介绍:https://www.grapecity.com.cn/developer/spreadjs

3.excel4node:

Excel的node小型框架,使用没有ExcelJs广泛,但是功能没有ExcelJs强大。

介绍:https://www.npmjs.com/package/excel4node

E:不使用框架,纯前端实现

Excel表格最终是xls(实际上是html table写成xls的格式)格式,可以实现图片的导入和样式的操作,但是图片的导入方式有本地图片资源的引入和直接赋值网站链接。

这两种图片导入方式都进行了测试,发现只有在启用编辑的时候图片才可以显示出来,否则显示不出来。Excel不信任图片的来源。

参考案例:https://blog.csdn.net/xiaoxiaojie12321/article/details/81780900

总结

最终打算采用ExcelJS,把数据发到node服务器,在node服务器端生成Excel表格,返回给前端使用。相关代码链接:https://github.com/wangyiman/handle_office_service

问题

node是在后端申请了一个虚拟机器,所以要保证所用到的框架不能对windows的excel产生依赖,万一出现了依赖,很可能跨平台就不支持了。

目前调研结果是excel4node可以跨平台,但是ExcelJS不能保证是否可以支持跨平台。

相关链接:

base64的转换

上一篇下一篇

猜你喜欢

热点阅读