技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 8 常见问题 0 技术文章 8

最后,一个组件可以完全超越Apache POI

时间:2022-11-04   访问量:1013

  在 GrapeCity Documents在出现之前,服务端文档组件一直都是Apache POI作为代表,作为一个原因Java编写的开源API库,Apache POI 主要用于对Microsoft Office阅读、写作、创建和维护文档。

  但正如POI定义如下:行动"Poor Obfuscation Implementation"缩写首字母,Apache POI仅提供"简单的模糊实现",在创建复杂逻辑的大型文档时,它往往缺钱。

  如果你想通过简单的代码逻辑快速创建、加载、编辑、导入/导出大型文档(Excel、Word、PDF),并将其部署到云端时,如何实现?

  而这些需求,恰恰是GrapeCity Documents 能满足。

GrapeCity Documents是什么?

  

  它是一个快速高效的服务端文档组件包 Windows、Mac、Linux 同时适用于完美操作 .NET和 Java 不依赖平台 Microsoft Office 和 Acrobat 提供快速生成、加载、编辑和保存 Excel、PDF、Word文档的功能。

  GrapeCity Documents 由不同文档和开发框架的四个组件组成:

适用于所有 .NET 平台的 Excel 文档 API —— GcExcel(.NET) 适用于所有 Java 平台的 Excel 文档 API —— GcExcel(Java) 适用于所有 .NET 平台的 PDF 文档 API —— GcPDF 适用于所有 .NET 平台的 Word 文档 API —— GcWord

  下面,我们将使用它GcExcel 例如,详细比较它 Apache POI 功能和性能。

功能对比:GcExcel VS Apache POI

  1. 公式数量

  GcExcel支持452种Excel公式。

  Apache POI在中间,支持的公式很少(尽管Apache POI该网站列出了280多个可评估的公式,但在API只显示157种)。

  2. 是否支持导出PDF

  GcExcel不仅支持导出PDF页面设置选项也可以控制格式。

  Apache POI不支持导出PDF。

  3. 条件格式

  GcExcel支持自定义图标集等多种条件格式,判断是否高于平均值(AboveAverage)、判断发生日期,Top 10、重复项判断,这些条件格式的设置规则和VSTO保持一致。

  但在Apache POI使用高级API对增加条件格式的判断将受到限制。因此,标记为内部用途的低级别只能用于处理Top10.高于平均值(AboveAverage)等格式化选项。

  4. 图表类型

  GcExcel图表界面与VSTO支持约53种图表类型。

  Apache POI对图表的支持非常有限,只支持Line、Bar、Column、Scatter和Radar图表类型。

  5. 迷你图

  GcExcel完全支持迷你图的添加和配置(Sparklines)。

  Apache POI目前不支持Sparklines。

  6. 剪切、 ** 、粘贴形状

  GcExcel支持剪切、 ** 、粘贴形状,Apache POI不支持。

  7. 过滤数据类型

  GcExcel文本、数字、日期、颜色和图标等过滤器得到广泛支持。

  Apache POI只支持基本的AutoFilter,实现应用过滤或创建任何其他高级过滤器都需要使用低级类。

  8. 排序

  GcExcel支持所有类型的排序、排序、自定义排序、颜色和图标排序。

  Apache POI没有内置的排序功能。但是,用户可以使用它shiftRows()/ ShiftColumns()并以编程的形式对数据进行排序。

  9. 切片器

  GcExcel支持带有数据透视表的切片器,Apache POI则不支持。

  10. 导出CSV格式

  GcExcel支持导出为CSV格式。

  Apache POI未提供内置导出CSV选项。但是,可以通过编程创建相应的方法CSV / HTML文件。

  11. 渐变填充

  GcExcel和Apache POI不支持。

  12. 在单元格中获得/设置值

  在获取/设置单元格的情况下,GcExcel比Apache POI表现更好。

  13. 示例和帮助文档

  使用Apache POI,许多功能需要访问和理解底层API才能实现, 但Apache POI开发人员提供的示例和文档数量非常有限,学习成本更高。

  而GcExcel独立于平台API 组件具有高性能、低内存消耗的特点Excel对象模型严格兼容。GcExcel更容易使用,功能全面。开发人员可以通过提供的在线示例和帮助文档快速启动和掌握产品使用技能。

性能对比:GcExcel VS Apache POI

  让我们通过一个GcExcel Java与基准项目相比Apache POI该项目是一个性能优劣的项目java gradle项目,可输出GcExcel、POI和Aspose.Cells性能结果如下:

  · 设置:获取和保存1000000 * 30单元格的double / string / date值,下图显示double值的结果。

  · GcExcel 用时不超过0.2S ;Apache POI 则达到18.7S左右

  

  

  · 设置:计算和保存2万万 * 结果如下:

  · GcExcel 用时不超过1S ;Apache POI 则达到10S左右

  

  · 打开并保存一个20.5MB 的 Excel结果如下:

  · GcExcel 用时不超过4.9S ;Apache POI 则达到10S左右

  · GcExcel 内存消耗为72.1MB;Apache POI 为3518.2MB

  

  

结论

  从以上结果可以看出,GcExcel 是服务端最快、内存消耗最少的电子表格组件。

  尽管 Apache POI 是免费的,但是它的速度和内存消耗远远不能达到企业级项目的标准,这就是为什么我只选择1万 * 30个单元格的原因,即使在1000,000 * 在30个单元格的情况下,GcExcel Java仍能平稳运行。

  另外,为了保证Apache POI必须成功运行JVM最小堆大小为4G,否则,它将被抛出OutOfMemory异常。 以下是build.gradle中的JVM配置:

  applicationDefaultJvmArgs = ["-Xms4096m", "-Xmx8192m"]

  大家可以从GitHub本项目上下载:

  并使用以下命令运行:

1. on ** c: ./gradlew run --args="double" //参数可以是double, string, date, formula, bigfile 1. on windows: gradlew run --args="double" //参数可以是double, string, date, formula, bigfile

  请注意,第一次运行会很慢,因为它需要下载gradle所有相关软件包。

  以上,就是GrapeCity Documents 与Apache POI 从数据可以看出,无论是运行速度还是内存消耗,在功能和性能上的比较,GrapeCity Documents 都要比Apache POI表现更好。

  如果你也有服务端处理的话 Excel、Word、PDF需要快速批量操作大型文档等文档去GrapeCity Documents下载试用官网。

  关于葡萄城

  赋能开发者!成立于 1980 2000年发工具、商业智能解决方案、低代码开发平台于一体的全球领先软件和服务提供商。西安葡萄城是中国的一家分公司,为全球市场提供软件研发服务,为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外多次获奖,广泛应用于全球数十万家企业、学校和政府机构。

上一篇:新的尝试!ComponentOne WinForm 和 .NET Core 3.0

下一篇:服务端文档组件库GrapeCityDocumentsV3.0Update2正式发布

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部