Clark.Pan 发表于 2020-6-30 16:29:33

GCExcel结合SpreadJS实现服务器端导出PDF

将Excel表格导出成PDF进行保存一直是一个非常常见的业务场景。在办公自动化的发展过程中,这样的需求会越来越多的被系统功能所替代。当我们在系统中实现上述功能的时候就会需要做如下的一些准备。首先,既然是要让用户在系统中将Excel导出成PDF,那么需要有一个能够进行Excel操作的平台,并且有可视化的界面提供给用户。SpreadJS就是首选,首先SpreadJS不仅能够支持已有的Excel导入,更能提供类似Excel的界面,方便直接线上创建Excel表格。
接下来,客户端下载PDF。SpreadJS源生的导出PDF功能可以直接用于生成PDF并在客户端进行下载的需求。

这样基本的需求我们就已经满足了。但由于行业应用的不同,业务的不同。往往会出现一些特殊的需求,比如有时我们需要批量的去生成PDF,或者需要将PDF保存至服务器的文件存储中。
这样的需求,单靠SpreadJS纯前端就会有一些鞭长莫及的感觉。就需要有对应的服务端组件来配合完成上述需求。其中,最适合作为SpreadJS在服务器端的配套组件就是GCExcel了。
首先GCExcel源生就支持直接读取SpreadJS序列化的ssjson。并且也兼容了大部分SpreadJS独特的功能例如tag,celltype,bingdingpath等。
并且GCExcel在有着自己的导出PDF功能,跟SpreadJS可以公用一套printinfo设置。
另外,在性能上GCExcel首先不用像SpreadJS一样需要注册字体,GCExcel可以直接访问操作系统的字体库,这样节省了注册字体的时间与性能损耗。
最重要的一点前端由于JavaScript是单线程,如果做批量导出时,必然会造成线程死锁。导致在批量导出结束前,页面无法进行其他的操作。但GCExcel在服务端操作就不会有这样的困扰。服务端可以静默去导出,同时不影响前端的操作。并且服务端可以支持多线程操作,利用多线程导出PDF可以使得整个过程更加快速效率。具体的业务实现可以参考附件








页: [1]
查看完整版本: GCExcel结合SpreadJS实现服务器端导出PDF