信息无障碍通道
您的位置:首页>>电脑软件

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

发布时间:2020-05-06  来源:互联网    背景: 无障碍通道

  在 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小时内处理完毕。


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

本文评论
勒索病毒趁聊天机器人“关停”再掀风浪,360安全大脑率先截杀
聊天机器人,一种自动回复好友、群消息、私聊的聊天小工具。最近,这种机器人却因“关停&rdquo...
日期:08-12
鱼塘软件|电商“劫”,其实真的可以有最优解!
现如今,电商已经是国民经济的重要组成部分,成为人们生活中不可或缺的一部分。
日期:08-10
金山办公赋能广西信创 打造基础软件产业标杆

金山办公赋能广西信创 打造基础软件产业标杆

日期:08-07
Mozilla Firefox引入ETP 2.0功能 扩大跟踪保护
Mozilla 安全博客介绍了 即将在未来几周推送给 Firefox 用户的增强隐私保护功能 Enhanced Tracking...
日期:08-06
苹果 Safari 浏览器终于支持 YouTube 4K 清晰度播放
今日凌晨,苹果向用户推送了 macOS Big Sur 第四个 beta 版本,此前并不支持 YouTube 4K 视频播放的...
日期:08-05
Edge地址栏输入任意内容导致浏览器崩溃 现已修复
最新版 Edge 浏览器存在软件 BUG,只要用户在地址栏输入任意内容都会导致浏览器崩溃。不过好消息是...
日期:07-31
谷歌 Chrome 浏览器将限制在非 HTTPS 网站使用游戏手柄
7月29日消息 本月初,报道称,微软一直在努力为Windows 10和Windows 10X上的Chromium浏览器带来完整...
日期:07-29
酷我畅听《雪中悍刀行》带给你不一样的广播剧体验!
说起侠,大约每个中国人都有话要说。侠之大者,为国为民,是惩恶扬善的仗义之士,是浪荡不羁的江湖...
日期:07-28
云智慧三度蝉联Gartner AIOps Sample Vendor
近日,Gartner发布《Hype Cycle for ICT in China, 2020》报告,云智慧凭借智能运维产品和技术的领...
日期:07-28
腾讯极光HF-S1机顶盒怎么样?应该安装哪些软件?当贝市场推荐
最近腾讯极光新盒子上线,对于一款网络机顶盒来说,想要显示更多的内容,或者发挥更多好玩有趣的功能,...
日期:07-28
微软 Win10 免费工具集 PowerToys v0.20 曝光:新增颜色选择器,7 月底发布
7月26日消息 微软名为PowerToys的免费系统实用工具套件从Windows XP时代复活,并于2019年5月引入Win...
日期:07-26
2020年十大音乐类软件排行榜,当贝酷狗音乐排名第一
一款好的播放器,可以带来非常棒的音乐体验,那么当下最好用的音乐播放器是哪个呢?为此小编通过下载量...
日期:07-22
Edge 浏览器即将迎来浏览历史同步功能
7 月 22 日消息 昨天微软透露,Edge 浏览器一些重要功能将在不久的将来到来。
日期:07-22
新Edge浏览器简化网址显示:默认隐藏http://www
微软新Edge浏览器推出后得到好评,因为Canary/Dev等预览通道的出现,其软件更新速度也很快。
日期:07-15
谷歌 Chrome 浏览器在 Mac 上「能用」了,将解决耗电、卡顿问题
谷歌 Chrome 浏览器长期占据市场份额的第一名,但它的使用体验却让用户叫苦不迭,被称为 “内...
日期:07-13
Chrome 与 Firefox 将支持 AVIF 图像格式
7月10日消息 据至顶网报道,新的 AVIF 格式图片即将出现在 Web 浏览器中。
日期:07-10
WPS Office 2019 Linux 专业版推出 “公文模式”,面向党政机关用户
7月8日消息 7月7日,金山办公在位于珠海的产品研发中心举行了以“民族办公软件的创新之路&rdqu...
日期:07-08
技巧:如何卸载 Win10 基于 Chromium 的新版 Edge 浏览器
7 月 7 日消息 虽然微软采用 Chromium 重新打造 Edge 浏览器受到很多用户的欢迎,目前新的微软 Edge...
日期:07-07
微软 Win10 大规模推送 Chromium 版 Edge 浏览器
7月6日消息 外媒 Windows Latest 报道,在接下来的几个月中,经典版 Microsoft Edge 浏览器时代对于...
日期:07-06
微软 Win10 全新开始菜单现身
6 月 24 日消息 Windows 10 于 2015 年发布,发布近五年后,微软已经开始为该操作系统打造新的外观...
日期:06-24
  专栏介绍
王涵 的专栏
王涵发表的文章
积分:
自我介绍 :