GcExcel:比 Apache POI 速度更快、性能更高
-
2020-06-03
Lmm
GrapeCity Documents for Excel(GcExcel) 是一款服务端 Java Excel 组件,产品架构轻量灵活,无需 Office 组件依赖,结合 纯前端表格控件 SpreadJS,在前端呈现 Excel 的数据可视化效果,实现类 Excel 的功能布局、数据分析和交互;在服务端实现批量创建、加载、编辑、导入/导出大型 Excel 文档,为您的应用程序提供 Excel 全栈、全场景解决方案。
GcExcel 对操作系统的支持
GcExcel 对云服务的支持
GcExcel +SpreadJS 实现Excel 全栈解决方案
与Java电子表格库Apache POI相比,GcExcel速度更快、性能更高、内存消耗更少。本文将详细比较Apache POI与GcExcel的功能和性能,并向您推荐使用GcExcel的12条主要原因。
主要功能对比
1. 公式数量
GcExcel 支持 452 种 Excel 计算公式,而在 Apache POI 中,支持的公式数量仅有 157 - 280 种。
2. 导出 PDF
GcExcel 支持导出 PDF 格式,包括页面设置选项、PDF 安全选项和文档属性, 而 Apache POI 不支持导出 PDF。
3. 条件格式
GcExcel 内置了更多条件格式规则,如自定义图标集、高于平均值(AboveAverage)、发生日期、Top 10 和重复项,且这些条件格式与 VSTO 一致。而 Apache POI 不支持条件格式,需要使用标记为内部用途的低级类。
4. 图表类型
GcExcel 的图表与 VSTO 一致,内置约 53 种图表类型,包括所有较新的图表,如箱形图(boxshicker)、漏斗图(Funnel)、直方图(Histogram)、帕累托图(Pareto)、旭日图(Sunburst)和树图(Treemap),而 Apache POI 仅对条形图、柱形图、折线图、雷达图和散点图提供有限的支持。
5. 迷你图
GcExcel 支持迷你图和迷你图组,可在单元格中可视化数据,而 Apache POI 不支持迷你图。
6. 剪切、复制、粘贴图片和形状
GcExcel 支持对形状和图片进行剪切、复制和粘贴,而 Apache POI 不支持对形状或图片执行剪贴板操作。
7. 数据过滤
GcExcel 支持应用高级过滤器,可对数字、文本、颜色、图标执行过滤,而 Apache POI 仅提供基本过滤。
8. 排序
GcExcel 支持所有类型的行、列、值、多值、自定义、字体、颜色和图标排序,而 Apache POI 没有内置的排序支持。
9. 切片器
GcExcel 支持带有表和透视表的切片器,提供内置切片器样式和自定义切片器样式,还提供了剪切、复制、筛选等操作,而 Apache POI 不支持切片器。
10. 导入导出 CSV
GcExcel 支持轻松地导入和导出 CSV,而 Apache POI 则不支持。
详细功能对比表
性能对比
我们通过一个测试项目,分别对比了 GcExcel 、Apache POI 和第三方组件的性能,结果如下所示:
1. 获取和保存 100,000 * 30 个单元格的 double / string / date 值,GcExcel 用时不超过 0.2S ;Apache POI 为 18.7S 左右。
2. 计算和保存 20,000 * 30 个单元格的公式,结果为:GcExcel 用时不超过 1S ;Apache POI 为 10S 左右。
3. 打开并保存一个 20.5MB 的 Excel 文件,该文件包含了大量数据、公式和单元格格式,结果如下:
GcExcel 用时不超过 4.9S ;Apache POI 则超过 10S
GcExcel 内存消耗为 72.1MB;Apache POI 为 3518.2MB
性能对比数据
性能对比图表
测试机配置
Linux:Intel i7-8700 @ 3.2 GHz x 12 32GB RAM / Ubuntu 18.04.4
MacOS:Intel i5 @ 2.6 GHz / MacOS Mojave v10.14.6
Windows:Intel i7-6600U @ 2.60 GHz 2.81 GHz 16GB RAM / Windows 10 x64 v1803(内部版本17134.1304)
测试版本
GrapeCity Documents for Excel 版本:3.1.0
Apache poi 版本:4.1.1
测试脚本
从 GitHub 下载测试项目
执行命令行(Mac): ./gradlew run --args="double" //参数可以是 double, string, date, formula, bigfile
执行命令行(Windows):gradlew run --args="double" //参数可以是 double, string, date, formula, bigfile
推荐您使用GcExcel的12条主要原因
1. 速度快、性能高
GCExcel 的平均速度是 Apache POI 的 7 倍,占用的内存仅为 1/7
2. 与 VSTO 一致的条件格式
包括图标集、高于平均值、发生日期、顶部/底部和重复/唯一值
3. 剪切、复制、粘贴图片和形状
支持对图片或形状执行剪切、复制、粘贴等剪贴板操作
4. 支持数据切片器
内置切片器样式,可执行剪切、复制和筛选,支持自定义选项
5. 支持 452 种 Excel 公式
内置种类丰富的计算函数,支持自定义公式
6. 支持 53 种图表类型
包括所有较新的图表,如箱形图、漏斗图、直方图、帕累托图等
7. 支持应用高级过滤器
包括对数字、文本、颜色、图标执行过滤
8. 导入和导出 CSV
GcExcel 支持导入和导出 CSV
9. 支持导出到 PDF
导出包括页面设置选项、安全选项和文档属性
10. 支持迷你图
GCExcel 支持迷你图和迷你图组,可在单元格中可视化数据
11. 多种排序支持
可按值、多值、字体颜色和图标排序,支持自定义排序
12. 支持渐变填充
对于使单元格、形状和图表系列“突出”时非常有用
通过上述数据,可见 GcExcel在处理大型Excel文档和复杂的计算公式时,比Apache POI和其他同类产品的速度更快,占用的内存也更少,与此同时,使用GcExcel,您还可以通过 Java、c# 代码完全控制电子表格,在不需要 Office 组件依赖的情况下,实现应用程序的组件化替代与云端架构升级。
如果您需要了解更多GcExcel的功能特性,以及如何与SpreadJS 配合使用,实现Excel 全栈、全场景解决方案,请前往 GrapeCity Documents 产品官网。
-
本文作者:Lmm
责任编辑:马亚蒙
本文来源:牛透社
-
分享到: