-
Notifications
You must be signed in to change notification settings - Fork 1
Description
这几天一直在研究如何通过前端导出docx,实验了几个库,都是用的OOXML(OfficeOpenXML)来导出。我用的环境是@vue/cli3.1.2创建的工程,所以实验了该环境下的各个库(基本是github搜索用javascript写的docx的前几个):
目前还么有什么结果
-
docx-templates,目前推荐这个库,这个库开始总是安装不成功,可能后来升级过可以安装成功。里边可以根据某个模板然后替换,但是模板里边必须使用作者自己定义的语法来实现,类似程序的for和if判断这些,比docxtemplater复杂一些,也比doctemplater全面。
-
docxtemplater,该库是从docx模板中,添加一些自定义语法糖,然后绑定数据,导出。这个库很完善,免费部分很好用。最大的缺点是一些基础的东西(比如表格、图片等)是收费的,每个付费模块$300-$400/year。
PS:目前我使用的是这个库,该库免费提供了一些基础的循环语法和模板,表格也可以应用一些循环语法。该库提供了一个入口可以自己插入OfficeOpenXML,这样可以实现一些复杂应用。 -
officegen,这是个老牌的库,各API格式也完善,暂时只支持node端,不支持纯前端,前端安装不成功!但作者回复issue说browser和ES6支持已经在todo-list了,已经在开发中,期待~
-
docx.js,该库是从头一点点创建文档,然后通过
js-zip导出。但该库还比较基础,文档中的元素也只是作者默认的类型。有序无序列表就无法自定义!同样,作者issue说会列入todo-list -
html-docx-js,这个库是通过转换html格式来生成docx,提供了一个在线编辑器来生成html,相当于作者用html来做语法糖,元素只能限制为作者规定的类型,自定义很困难。
-----------------以上几个库可能需要观望一阵再说,下边的纯粹不成功的-----------------------
- docx4js,这是一个用于解析docx的工具库,方便拆解docx,前边有一些库用到了这个库。
- jsdocx,只找到github地址,没找到使用说明,看demo比较简单一些。看模块划分,只有简单的文字段落,没有复杂的东西,放弃。
- jsreport-html-embedded-in-docx,该库基于
jsreport-core来使用,没有安装成功。 - generate-docx,继承自docxtemplater,不完善
2018.12.06