GcExcel:比 Apache POI 速度更快、性能更高
GcExcel:比 Apache POI 速度更快、性能更高GrapeCityDocuments for Excel(GcExcel) 是一款服务端 Java Excel 组件,产品架构轻量灵活,无需 Office 组件依赖,结合 纯前端表格控件 SpreadJS,在前端呈现 Excel 的数据可视化效果,实现类 Excel 的功能布局、数据分析和交互;在服务端实现批量创建、加载、编辑、导入/导出大型 Excel 文档,为您的应用程序提供 Excel全栈、全场景解决方案。 GcExcel 对操作系统的支持
GcExcel 对云服务的支持 GcExcel +SpreadJS 实现Excel 全栈解决方案 与Java电子表格库ApachePOI相比,GcExcel速度更快、性能更高、内存消耗更少。本文将详细比较ApachePOI与GcExcel的功能和性能,并向您推荐使用GcExcel的12条主要原因。 主要功能对比1.公式数量GcExcel 支持 452 种 Excel 计算公式,而在 Apache POI 中,支持的公式数量仅有 157 -280 种。2.导出 PDFGcExcel 支持导出 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 支持所有类型的行、列、值、多值、自定义、字体、颜色和图标排序,而 ApachePOI 没有内置的排序支持。9.切片器GcExcel 支持带有表和透视表的切片器,提供内置切片器样式和自定义切片器样式,还提供了剪切、复制、筛选等操作,而Apache POI 不支持切片器。10. 导入导出 CSVGcExcel 支持轻松地导入和导出 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.导入和导出 CSVGcExcel 支持导入和导出 CSV 9.支持导出到 PDF导出包括页面设置选项、安全选项和文档属性 10. 支持迷你图GCExcel 支持迷你图和迷你图组,可在单元格中可视化数据 11. 多种排序支持可按值、多值、字体颜色和图标排序,支持自定义排序 12. 支持渐变填充对于使单元格、形状和图表系列“突出”时非常有用 通过上述数据,可见 GcExcel在处理大型Excel文档和复杂的计算公式时,比Apache POI和其他同类产品的速度更快,占用的内存也更少,与此同时,使用GcExcel,您还可以通过 Java、c# 代码完全控制电子表格,在不需要 Office 组件依赖的情况下,实现 Excel 全功能。 如果您需要了解更多GcExcel的功能特性,以及如何与SpreadJS配合使用,实现Excel 全栈、全场景解决方案,请前往 GrapeCityDocuments 产品官网。
页:
[1]