与 NPOI 在功能和性能上的对比测试
该页展示了 GrapeCity Documents for Excel(GcExcel) 与 NPOI 和第三方表格组件在功能和性能上的对比测试,作为一款支持 Java 和 .NET 平台的服务端表格组件,GcExcel 无论从运行速度、功能,还是内存消耗等方面,都要比 NPOI 表现的更为优秀。
功能对比
条件格式
GcExcel 内置了更多条件格式规则,如自定义图标集、高于平均值(AboveAverage)、发生日期、Top 10 和重复项,且这些条件格式与 VSTO 一致。而 NPOI 不支持条件格式,需要使用标记为内部用途的低级类。
图表类型
GcExcel 的图表与 VSTO 一致,内置约 53 种图表类型,包括所有较新的图表,如箱形图(boxshicker)、漏斗图(Funnel)、直方图(Histogram)、帕累托图(Pareto)、旭日图(Sunburst)和树图(Treemap),而Apache NPOI 仅对条形图、柱形图、折线图、雷达图和散点图提供有限的支持。
切片器
GcExcel 支持带有表和透视表的切片器,提供内置切片器样式和自定义切片器样式,还提供了剪切、复制、筛选等操作,而 NPOI 不支持切片器。
示例与文档数量
GcExcel 作为一款企业级组件,提供了大量在线演示示例,开发人员可以快速上手,迅速投入使用,而 NPOI 提供的示例和文档数量十分有限,对于开发人员来说学习成本较高。
详细功能对比表:
性能对比
我们通过一个测试项目,分别对比了 GcExcel 、NPOI 和第三方表格组件的性能,结果如下所示:
1. 获取和保存 100, 000 * 30 个单元格的 double / string / date 值,GcExcel 用时不超过 0.1 秒;NPOI 为 8 秒左右。
2. 计算和保存 20, 000 * 30 个单元格的公式,结果为:GcExcel 用时不超过 1 秒;NPOI 至少需要 300 秒。
3. 打开并保存一个含有大量计算公式、样式和单元格数据的 Excel 文件,结果如下:
- GcExcel 用时不超过 3 秒;NPOI 则需要 20 秒
- GcExcel 内存消耗为 38 MB;而 NPOI 的内存消耗高达 800 MB
详细数据如下表:
测试机配置
- Windows:Intel i7-105100U @ 1.8GHz 16GB RAM / Windows 10 x64 v20H2(内部版本 19042.685)
测试版本
- GrapeCity Documents for Excel 版本:4.0.0
- NPOI 版本:2.5.1
测试脚本
- 从 GitHub 下载测试项目
- 还原 Nuget 包
- 执行程序
为什么选择 GcExcel?
-
速度快、性能高
GcExcel 的平均速度是 NPOI 的 7 倍,占用的内存仅为 1/7
-
与 VSTO 一致的条件格式
可使用与 Office 完全相同的文档对象模型
-
剪切、复制、粘贴图片和形状
支持对图片或形状执行剪切、复制、粘贴等剪贴板操作
-
支持数据切片器
内置切片器样式,可执行剪切、复制和筛选,支持自定义选项
-
支持 450 多种 Excel 公式
内置种类丰富的计算函数,支持自定义公式
-
支持 53 种图表类型
提供更加专业的图表,如箱形图、漏斗图、直方图、帕累托图
-
支持应用高级过滤器
包括对数字、文本、颜色、图标执行过滤
-
导入和导出 CSV
可明显提高文件的传输速度和读取效率
-
批量打印
可将 Excel 表单导出为 PDF(确保格式不变),实现批量打印
-
支持迷你图
GcExcel 支持迷你图和迷你图组,可在单元格中可视化数据
-
多种排序支持
可按值、多值、字体颜色和图标排序,支持自定义排序
-
支持渐变填充
对于使单元格、形状和图表系列“突出”时非常有用
可与纯前端表格控件 SpreadJS 前后端兼容
GcExcel 天然与 SpreadJS 前后端兼容,可直接导入 SSJSON 格式,在不依赖 Office、NPOI 和第三方软件的情况下,满足在线文档的前后端数据同步、在线填报与服务端批量导出与打印,以及类Excel 报表模板设计与服务端高性能处理等功能,为您开发的应用程序提供整套 类 Excel 全栈解决方案。