您的位置:首页>>电脑软件

终于有一款组件可以全面超越Apache POI

发布时间:2020-05-06 17:02:08  来源:互联网    背景:

  在 GrapeCity Documents出现以前,服务端文档组件向来以Apache POI为代表,作为一款由Java编写的开源API库,Apache POI 主要应用于对Microsoft Office文档进行读、写,以及创建和维护。

  但正如POI所定义的那样:作为“Poor Obfuscation Implementation”首字母的缩写,Apache POI仅提供“简单的模糊实现”,其在创建复杂逻辑的大型文档时,经常会捉襟见肘。

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

  而这些需求,恰恰是GrapeCity Documents 可以满足的。

  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的性能结果,如下所示:

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

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

img2
img3

  · 设置:计算和保存20,000 * 30个单元格的公式,结果如下:

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

img4

  · 打开并保存一个20.5MB 的 Excel文件,其中包含了许多数据、公式和单元格格式,结果如下:

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

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

img5
img6

  结论

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

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

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

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

  大家可以从GitHub上下载这个测试项目:

  https://github.com/GrapeCity/GcExcel-Java/tree/master/benchmark, 并使用以下命令行运行它:

  · on mac: ./gradlew run --args="double" //参数可以是double, string, date, formula, bigfile

  · 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 年,是全球领先的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业、学校和政府机构广泛应用。

特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时申博会员网站,本站将会在24小时内处理完毕。


返回网站首页 本文来源:互联网

本文评论
Ubuntu 20.10 将为 ZFS 提供更多改进
从 Ubuntu 20.04 LTS 发布到现在已有两周,Canonical 和 Ubuntu 社区也已将注意力转移到 Ubuntu 20....
日期:05-07
旗鱼移动操作系统Sailfish OS 3.3“Rokua”发布
Sailfish OS 3.3 已发布,代号"Rokua"。Sailfish OS(中文:旗鱼系统)是一款开源操作系统,其核心基...
日期:05-07
Google Chrome 81.0.4044.138 发布
谷歌浏览器Google Chrome 81正式版例行更新,详细版本81.0.4044.138。Google Chrome浏览器,又称谷...
日期:05-06
终于有一款组件可以全面超越Apache POI
在 GrapeCity Documents出现以前,服务端文档组件向来以Apache POI为代表,作为一款由Java编写的开...
日期:05-06
Firefox 火狐浏览器 76 正式版发布:画中画,增强密码保护
Firefox 76 版本正式发布了,此版本一大亮点是增强了对在线帐户登录名和密码的保护:
日期:05-06
最受信赖的Win10版本出炉:半数用户搭载
尽管下月就将迎来Windows 10 v2004五月更新,可最新统计显示,当前保有量最高的Windows 10版本是去...
日期:04-30
又是一年毕业季 这些好用的论文工具必不可少
临近五一,除了即将让人开心的五一假期,一转眼又快到了一年一度的毕业季。
日期:04-30
HDD 机械硬盘救星,微软 Win10 版本 2004 性能大提速
4月28日消息 Windows 10设备随着时间的推移可能会变慢,这与软硬件配置有关。尽管有多种方法可以改...
日期:04-28
XSKY SDS V4.2重磅发布,为数据基础设施注入“免疫力”
在不确定性中寻找确定性。
  01抵抗不确定性的“免疫力”
  这次疫情&ldqu...
日期:04-28
微软让Win10浅色主题越来越养眼:摒弃酷炫的黑暗模式
跟苹果一样,微软也在调整Windows 10系统主题风格,主要来说就是,让浅色主题模式看起来更加养眼。
日期:04-27
开发者讨论将 Qt 5 代码移植到 Qt 6 的工具
Qt 是一个跨平台的C++图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛...
日期:04-26
Ubuntu 20.04 LTS进驻Windows子系统:只能用3年
在很多人的印象中,开源的Linux、闭源的Windows应该是势不两立,其实完全不是这样,微软一直都在鼎...
日期:04-25
Edge Beta迈入83版本:优化PDF Ink选项 新增冲浪小游戏
今天微软Edge团队通过官方推特帐号宣布,Beta通道已经发布了最新Edge 83浏览器版本。由于疫情影响,...
日期:04-23
Vivaldi 3.0发布:更妥善保护用户隐私
热门桌面浏览器Vivaldi于今天发布了3.0版本更新,希望能够给用户提供妥善的安全防护,避免被追踪,...
日期:04-22
百度网盘紧急更新!默认关闭上传
近日,百度网盘因默认开启用户激励计划、占用上传带宽和本地存储空间而引发争议,官方也公开道歉,...
日期:04-21
一文说清 KubeSphere 容器平台的价值
KubeSphere (github.com/kubesphere) 作为云原生家族 后起之秀,开源近两年的时间以来收获了诸多用...
日期:04-17
微软确认:新Edge浏览器明年将停止支持Win7
今年1月,基于Chromium全新打造的Edge浏览器正式版发布,并且实现了对Win7/8.1、macOS、iOS、Androi...
日期:04-13
ABM策略助力B2B SaaS企业拉近与“Salesforce”的距离
自1999年Salesforce成立,打出“No Software”的口号,到2004年在纽交所上市,年营收近1...
日期:04-10
跨平台数据组件:C1DataCollection 简介
近日,.NET 组件集 ComponentOne 发布新版V2020.0 Update1,该版本更加聚焦跨平台数据管理与集成,...
日期:04-08
火狐浏览器v75正式版发布:2.5亿用户喜迎升级
FireFox(火狐)浏览器本周发布v75正式版,这是火狐进入四周一次大版本迭代节奏后上线的首个稳定版,...
日期:04-08
  专栏介绍
王涵 的专栏
王涵发表的文章
积分:
自我介绍 :
网站地图 金沙娱乐的官方网址 威尼斯人棋牌赚钱吗 威尼斯官方直营
申博太阳城游戏 申博娱乐官方网站 太阳申博官网 申博88sunbet
百家乐概率分析软件 凤凰彩票app登入 新櫈娱乐网站 易彩线上娱乐
mg游戏平台金沙 金沙娱乐会所 威尼斯官方直营 金沙娱乐的官方网址
金沙电子游艺娱乐 新金沙线上官方 澳门新金沙娱乐开户 申博会员网站
451xx.com DC583.COM 304psb.com 132cw.com S618E.COM
DC398.COM 787cw.com 778DC.COM 118XTD.COM XSB718.COM
6666XSB.COM 537SUN.COM 8ZQS.COM 777sbmsc.com 1112978.COM
231SUN.COM S6184.COM 986tt.com DC785.COM 129SUN.COM