GcExcel:比 Apache POI 速度更快、性能更高

GrapeCity Documents for Excel(如下简称:GcExcel) 是一款服务端 Java Excel 组件,产品架构轻量灵活,无需 Office 组件依赖,结合纯前端表格控件 SpreadJS,在前端呈现 Excel 的数据可视化效果,实现类 Excel 的功能布局、数据分析和交互;在服务端实现批量建立、加载、编辑、导入/导出大型 Excel 文档,为您的应用程序提供 。前端

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 则不支持。web

详细功能对比表
性能对比
咱们经过一个测试项目,分别对比了 GcExcel 、Apache POI 和第三方组件的性能,结果以下所示:c#

  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?架构

  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文档和复杂的计算公式时,比和其余同类产品的速度更快,占用的内存也更少,与此同时,使用GcExcel,您还能够经过 Java、c# 代码彻底控制电子表格,在不须要 Office 组件依赖的状况下,实现应用程序的组件化替代与云端架构升级。 若是您须要了解更多GcExcel的功能特性,以及如何与SpreadJS 配合使用,实现Excel 全栈、全场景解决方案,请前往GrapeCity Documents产品官网。