🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **PageOffice与Apache POI的区别** ### **1. 相同之处:** 1) 都可以对MS Office文档进行填充数据,转HTML、PDF等。 2) 服务器端都不需要装MS Office办公软件。 3) 都支持windows、linux、unix服务器。 ### **2. 不同之处:** 1) PageOffice是客户端生成文档的, POI是服务器端生成文档的。使用PageOffice需要在客户端电脑上安装PageOffice的客户端posetup。exe程序,而POI不需要安装任何程序。 2) PageOffice对于doc和docx的文档的处理方式相同,客户不需要知道其内部的处理方式,对用户提供的调用方法都是相同的,例如:对doc和docx的文档填充数据,对外提供的是统一的方法setValue("值")。而POI对于doc,docx的文档的处理方式是不同的,在调用之前用户必须判断是什么格式的文档,就用其对应的基类,例如:处理doc格式的文档的基类是Hwpf,处理docx格式的文档的基类是Xwpf,两者在填充数据时提供内部方法繁琐,接口混乱,使用非常不方便。 3) 在转PDF的功能中POI没有提供最直接的转PDF的方法,所以我们必须借助其它第三方的工具转html,例如可以使用itext,OpenOffice等第三方工具来结合POI对Office文档转PDF功能,但是itext对于docx的文档支持比较好,但对于doc的文档,没有提供比较完善的接口。OpenOffice只支持windows服务器。PageOffice转PDF调用的是office本身的接口,转PDF功能非常完美。 4) PageOffice对文档格式要求不是很严格,只要客户端本身能正确打开的文档,PageOffice在线都能完美打开。而Poi对文档格式要求很严格,docx文档在填充数据的过程中不能有特殊的超链接,否则填充使得文档损坏,doc文档强制转换成docx格式的使用PageOffice可以,但是使用Poi则出现格式损坏问题,导致不能使用。 5) 使用PageOffice在十行代码就可以完成实现填充数据,转HTML、PDF的功能,但是使用POI就得用五六百行代码,并且POI实现的过程代码复杂困难,而且不是很稳定,所以使用POI及其费时间和精力。 >[info]**总结:** 使用PageOffice产品开发周期短, 集成方式简单,接口稳定易用,用户很容易学会其使用方式,而POI接口繁琐,方法混乱,不稳定,开发过程很耗费时间和精力.