该页展示了 GrapeCity Documents for Excel(GcExcel) 与 Apache POI、第三方组件在功能和性能上的对比测试,作为一款服务端 Java/.NET Excel 组件,GrapeCity Documents for Excel 无论从运行速度、功能,还是内存消耗等方面,都要比 Apache POI 表现的更为优秀。

功能对比

公式数量

GcExcel 支持 452 种 Excel 计算公式,而在 Apache POI 中,支持的公式数量仅有 157 - 280 种。

GcExcel(Java) GcExcel(.NET)

导出 PDF

GcExcel 支持导出 PDF 格式,包括页面设置选项、PDF 安全选项和文档属性, 而 Apache POI 不支持导出 PDF。

GcExcel(Java) GcExcel(.NET)

条件格式

GcExcel 内置了更多条件格式规则,如自定义图标集、高于平均值(AboveAverage)、发生日期、Top 10 和重复项,且这些条件格式与 VSTO 一致。而 Apache POI 不支持条件格式,需要使用标记为内部用途的低级类。

GcExcel(Java) GcExcel(.NET)

图表类型

GcExcel 的图表与 VSTO 一致,内置约 53 种图表类型,包括所有较新的图表,如箱形图(boxshicker)、漏斗图(Funnel)、直方图(Histogram)、帕累托图(Pareto)、旭日图(Sunburst)和树图(Treemap),而 Apache POI 仅对条形图、柱形图、折线图、雷达图和散点图提供有限的支持。

GcExcel(Java) GcExcel(.NET)

迷你图

GcExcel 支持迷你图和迷你图组,可在单元格中可视化数据,而 Apache POI 不支持迷你图。

GcExcel(Java) GcExcel(.NET)

剪切、复制、粘贴图片和形状

GcExcel 支持对形状和图片进行剪切、复制和粘贴,而 Apache POI 不支持对形状或图片执行剪贴板操作。

GcExcel(Java) GcExcel(.NET)

数据过滤

GcExcel 支持应用高级过滤器,可对数字、文本、颜色、图标执行过滤,而 Apache POI 仅提供基本过滤。

GcExcel(Java) GcExcel(.NET)

排序

GcExcel 支持所有类型的行、列、值、多值、自定义、字体、颜色和图标排序,而 Apache POI 没有内置的排序支持。

GcExcel(Java) GcExcel(.NET)

切片器

GcExcel 支持带有表和透视表的切片器,提供内置切片器样式和自定义切片器样式,还提供了剪切、复制、筛选等操作,而 Apache POI 不支持切片器。

GcExcel(Java) GcExcel(.NET)

导入导出 CSV

GcExcel 支持轻松地导入和导出 CSV,而 Apache POI 则不支持。

GcExcel(Java) GcExcel(.NET)

渐变填充

GcExcel 支持渐变填充,这在 Apache POI 中是不受支持的(渐变填充对于使单元格、形状和图表系列“突出”时非常有用)。

GcExcel(Java) GcExcel(.NET)

获取/设置值的方式

在单个单元格中获取/设置值时,GcExcel 的实现方式比 Apache POI 更简单。

GcExcel(Java) GcExcel(.NET)

示例与文档数量

GcExcel 作为一款企业级组件,提供了大量在线演示示例,开发人员可以快速上手,迅速投入使用,而 Apache POI 提供的示例和文档数量十分有限,对于开发人员来说学习成本较高。

GcExcel(Java) GcExcel(.NET)

详细功能对比表:

性能对比

我们通过一个测试项目,分别对比了 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?

  • 速度快、性能高

    GcExcel 的平均速度是 Apache POI 的 7 倍,占用的内存仅为 1/7

  • 与 VSTO 一致的条件格式

    可使用与 Office 完全相同的文档对象模型

  • 剪切、复制、粘贴图片和形状

    支持对图片或形状执行剪切、复制、粘贴等剪贴板操作

  • 支持数据切片器

    内置切片器样式,可执行剪切、复制和筛选,支持自定义选项

  • 支持 450 多种 Excel 公式

    内置种类丰富的计算函数,支持自定义公式

  • 支持 53 种图表类型

    提供更加专业的图表,如箱形图、漏斗图、直方图、帕累托图

  • 支持应用高级过滤器

    包括对数字、文本、颜色、图标执行过滤

  • 导入和导出 CSV

    可明显提高文件的传输速度和读取效率

  • 批量打印

    可将 Excel 表单导出为 PDF(确保格式不变),实现批量打印

  • 支持迷你图

    GcExcel 支持迷你图和迷你图组,可在单元格中可视化数据

  • 多种排序支持

    可按值、多值、字体颜色和图标排序,支持自定义排序

  • 支持渐变填充

    对于使单元格、形状和图表系列“突出”时非常有用

可与纯前端表格控件 SpreadJS 前后端兼容

GcExcel 天然与 SpreadJS 前后端兼容,可直接导入 SSJSON 格式,在不依赖 Office、POI 和第三方软件的情况下,满足在线文档的前后端数据同步、在线填报与服务端批量导出与打印,以及类 Excel 报表模板设计与服务端高性能处理等功能,为您开发的应用程序提供整套 类 Excel 全栈解决方案

可与纯前端表格控件 SpreadJS 前后端兼容

相关产品推荐

SpreadJS纯前端表格控件

纯前端表格控件,可嵌入您系统的在线Excel

  • 业界领先的 Excel 兼容度,功能、UI 与 Excel 高度类似
  • 自主研发的计算引擎,兼容 450 种以上的 Excel 公式
  • 无需第三方组件,纯前端导入、导出 Excel 文件

了解更多 立即试用