找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

200

主题

9899

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
15531

讲师达人悬赏达人微信认证勋章SpreadJS 认证SpreadJS 高级认证元老葡萄

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-6-30 16:29  /   查看:3193  /  回复:0
将Excel表格导出成PDF进行保存一直是一个非常常见的业务场景。在办公自动化的发展过程中,这样的需求会越来越多的被系统功能所替代。当我们在系统中实现上述功能的时候就会需要做如下的一些准备。首先,既然是要让用户在系统中将Excel导出成PDF,那么需要有一个能够进行Excel操作的平台,并且有可视化的界面提供给用户。SpreadJS就是首选,首先SpreadJS不仅能够支持已有的Excel导入,更能提供类似Excel的界面,方便直接线上创建Excel表格。 image.png307833861.png
接下来,客户端下载PDF。SpreadJS源生的导出PDF功能可以直接用于生成PDF并在客户端进行下载的需求。
image.png355690306.png
这样基本的需求我们就已经满足了。但由于行业应用的不同,业务的不同。往往会出现一些特殊的需求,比如有时我们需要批量的去生成PDF,或者需要将PDF保存至服务器的文件存储中。
这样的需求,单靠SpreadJS纯前端就会有一些鞭长莫及的感觉。就需要有对应的服务端组件来配合完成上述需求。其中,最适合作为SpreadJS在服务器端的配套组件就是GCExcel了。
首先GCExcel源生就支持直接读取SpreadJS序列化的ssjson。并且也兼容了大部分SpreadJS独特的功能例如tag,celltype,bingdingpath等。
并且GCExcel在有着自己的导出PDF功能,跟SpreadJS可以公用一套printinfo设置。
另外,在性能上GCExcel首先不用像SpreadJS一样需要注册字体,GCExcel可以直接访问操作系统的字体库,这样节省了注册字体的时间与性能损耗。
最重要的一点前端由于JavaScript是单线程,如果做批量导出时,必然会造成线程死锁。导致在批量导出结束前,页面无法进行其他的操作。但GCExcel在服务端操作就不会有这样的困扰。服务端可以静默去导出,同时不影响前端的操作。并且服务端可以支持多线程操作,利用多线程导出PDF可以使得整个过程更加快速效率。具体的业务实现可以参考附件








GCExcel_SpreadJS_ExportPDF.zip

3.26 MB, 下载次数: 166

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部