Aspose.Cells for Java 与开源竞争对手

概述

大多数业务场景需要复杂的报告,这些报告内容丰富,并侧重于一般管理人员将使用它们进行的特定决策或任务的需求。他们还需要一些数据收集、分析和与数据库系统接口的方法。

一个常见的解决方案是使用电子表格进行数据收集、分析和作为演示工具。该解决方案应该能够创建完全格式化的 Microsoft Excel 文件,这些文件可以分析业务场景,理想情况下,扩展这些基本功能以探索捕获数据并将数据导出到其他广泛使用的办公应用程序的过程。这些开发可能包括使用 Microsoft Excel 的内置特性和功能。

我们在当今市场上遇到了不同的电子表格组件,它们真正承诺为电子表格管理提供功能丰富的 API。在这里,我们对 Aspose.Cells for Java 与它的开源竞争对手 JExcelAPI 和 POI 的 HSSF 进行了特性分析。先简单介绍一下这三者吧。

Aspose.Cells for Java

Aspose.Cells for Java 是一个灵活的组件,使 Java 应用程序能够创建和管理 Excel 电子表格,而无需在系统(客户端或服务器)上安装 Microsoft Excel。与其他供应商的同类产品不同,Aspose.Cells for Java 不仅支持电子表格生成和基本的文件格式设置功能,还支持许多高级功能。这些高级功能使开发人员可以轻松操作电子表格内容、单元格格式和文件保护选项。

Aspose.Cells for Java 还可以将不同数据源的数据导入电子表格,添加常用和复杂的数学、日期/时间、财务、文本公式和函数,导入图片(支持所有主要格式包括BMP、GIF、JPG、PNG、WMF、EMF等),创建注释,创建绘图对象和控件,以及执行一系列其他任务。

Aspose.Cells for Java 还支持插件、VBA 和宏。

打开并保存

除了支持创建或读取本机 Excel 文件等常见功能外,Aspose.Cells for Java 还提供许多有价值的功能,例如在流中保存和打开 Excel 文件 (Excel 97 - Excel 2007),从 ResultSet 和数组导入和导出数据,

Aspose.Cells 可以导入具有 Microsoft Excel 提供的所有属性的图表、命名范围、页眉和页脚,插入超链接和图像,以及从设计器电子表格导入公式。

格式化

工作表数据格式化很重要,因为它可以改变数据的含义。如果您打算打印工作表、通过电子邮件将其发送给客户或向您的老板展示,您需要考虑其格式是否便于查看。仔细使用颜色、阴影、边框、字体、数字格式、对齐方式、缩进和方向可以使杂乱无章的数据和易于使用和理解的工作表有所不同。

Aspose.Cells for Java 提供了在单元格和单元格区域周围轻松绘制边框的灵活性。此外,AIP 可以应用字体设置(系列和类型、样式、大小、颜色和对齐方式)并使用背景图案为单元格添加阴影。 API 足够高效,您可以格式化完整的行或列、设置对齐方式、换行和旋转单元格中的文本。

Aspose.Cells for Java 支持所有类型的数字格式,包括通用格式、十进制数字、货币符号、百分比、科学格式、日期/时间值,甚至自定义数字格式。

Aspose.Cells 允许开发人员在一次操作中自动调整行和列,并在方便的 API 中配置所有类型的页面设置选项:顶部、左侧、底部、右侧、页眉和页脚边距、方向 - 纵向或横向 - 缩放,纸张大小、打印区域、重复的行和列等等。

独特的功能

还有一些开发人员只能在 Aspose.Cells for Java 中找到的独特功能,例如支持多种格式,包括 XLS、XLT、XLSX、CSV、SpreadsheetML、制表符分隔、TXT、XML 和 0761834

API 还允许开发人员将现有工作表(包含完整内容、图像和图表)的副本添加到文件,通过 API 为图表设置渐变背景,创建评论,设置语言环境和区域设置,自动过滤器和分页符、设置复杂公式、条件格式、Microsoft Excel XP 或更高版本中引入的所有类型的保护选项,以及操作命名范围。

此外,Aspose.Cells增加了自定义图表API和高效的公式计算引擎。

尝试 Aspose.Cells for Java

Aspose.Cells for Java 具有大量功能。要了解有关这些功能和程序员指南的更多信息,请查看文档在线演示.

请试用该组件,看看它与竞争对手的区别。评估版完全免费,没有时间限制。下载评估版免费。

其他API

JExcelAPI

JExcelAPI 是一个Java API 用来读取、写入和修改Excel电子表格。它是一个开放源代码 Java API 允许 Java 开发人员读取 Excel 电子表格并动态生成 Excel 电子表格。此外,它包含一种允许 Java 应用程序读取电子表格、修改单元格和编写新电子表格的机制。

在撰写本文时,它的功能集有限。它支持:只支持读写XLS文件格式的原生Microsoft Excel文件(Excel97-2003)。它有一些有限的公式计算支持。它可以操纵字体、支持数字和日期格式、修改现有工作表、区域设置、保留图表(但不允许开发人员创建或操纵图表)、插入图像等。

有限图表支持

JExcelApi 对图表的支持有限:它不支持创建和操作图表。复制包含图表的电子表格时,图表会写出到生成的电子表格中(只要包含图表的工作表包含其他数据以及图表)。复制 excel 文件时会保留所有图像信息,但是,将图像添加到电子表格时,仅支持 PNG 格式的图像。

无法复制工作表

没有 API 可以直接在工作簿内或工作簿之间复制工作表。此任务可以间接方式完成,但需要完成一些工作。例如,使用循环,使用 WritableCell.copyTo() 方法逐个单元格地复制,这将产生深拷贝。然而,格式只是浅拷贝,因此您需要获取单元格格式并使用其复制构造函数,然后在刚刚复制的单元格上调用 WritableCell.setCellFormat()。这是一项相当大的工作。

无优化

另一个限制是 JExcelAPI 不执行优化以减小文件大小,我们应该不会对组件生成的输出文件以 MB 为单位感到惊讶。

JExcelAPI 没有用于自动调整行或列的 API。您需要编写代码来扫描每列中的单元格,计算最大长度,然后相应地调用 WritableSheet.setColumnView() 和 Writable Sheet.setRowView()。

缺少的功能

还有一些障碍: API 不支持数据透视表和下拉列表。它在单元格上设置的验证选项有限。不完全支持页面设置和打印选项,例如重复行和列,并且不支持所有类型的保护选项(包括密码保护相关表)。它还不支持数据排序、自动过滤数据、条件格式、绘图对象、控件和许多更有价值的功能。

POI-HSSF

HSSF 是读写 Excel 电子表格的 POI 组件。与 JExcelAPI 相比,它具有一组扩展的功能,包括读写本机 Microsoft Excel 文件(尚不支持 Excel97-2003 - XLSX OOXML 文件格式)、格式化单元格(数字格式、字体、颜色、边框、对齐方式等) 、合并单元格、页面设置选项、导入图像、形状、命名范围、创建注释、页眉和页脚、超链接、自动调整行和列等。

有限图表支持

POI-HSSF API 有一些已知限制。例如,您目前无法创建图表。但是,您可以在 Excel 中创建图表,使用 HSSF 修改图表数据值并写出新的电子表格。另一个是数据透视表支持,无法生成数据透视表。

公式计算

POI的org.apache.poi.hssf.usermodel虽然支持公式,但是缺少丰富的公式计算引擎。它支持包含单元格引用字符串、整数和浮点文字、相对或绝对引用、算术和逻辑运算符的公式,但不支持数组公式、一元运算符和 3D 引用。

缺少的功能

HSSF API 也不支持数据透视表。它在单元格上设置的数据验证选项有限。它也不支持数据排序和自动过滤数据等功能。

功能比较

下表试图提供关于 Aspose.Cells for Java 如何匹配开源组件(如上所述)的功能概述,尽管它并不挑战涵盖所涉及产品提供的所有功能。这只是在某个特定时间采取的大纲,很可能在您阅读文档时会支持缺少的功能。

特征 JExcelAPI POI 的 HSSF Aspose.Cells for Java
文件格式
读写文件格式(XLS、XLT、XLSX、CSV、SpreadsheetML、制表符分隔、TXT、XML 和 HTML) 部分支持 部分支持 支持的
打开文件并保存到流 支持的
将 Excel 文件转换为 PDF 文档 支持的
受密码保护的文件 支持的 支持的
处理电子表格内容
修改Excel文件的文档属性 支持的
将工作表数据导出到数组 支持的
从 ResultSet 导入数据 支持的
从数组、集合导入数据 支持的
添加现有工作表的副本(所有内容包括图像和图表) 部分支持 部分支持 支持的
导入图像 支持的
导入图表 支持的
使用 API 为图表设置渐变背景 支持的
保护工作表,包括内容、对象和场景 部分支持 支持的 支持的
使用 API 创建自动过滤器 支持的
页面设置功能(顶部、左侧、底部、右侧、页眉和页脚边距、方向 - 纵向或横向、缩放、纸张大小、打印区域、重复行和列) 部分支持 支持的 支持的
横竖分页 API 支持的 支持的 支持的
在工作簿内和工作簿之间复制和移动工作表 支持的 支持的
插入和删除行和列 支持的 支持的
自动调整行和列 支持的 支持的
复制行和列 支持的
资料整理 支持的
追踪先例和家属 支持的
自动过滤 支持的
数据验证(所有类型) 部分支持 部分支持 支持的
从设计器电子表格导入公式 部分支持 部分支持 支持的
通过API设置复杂公式 支持的
条件格式 支持的 支持的
激活工作表并在工作簿中激活 Cell。 支持的 支持的 支持的

|高级功能|||| |智能标记|||支持的| |创建标准图表(柱形图、条形图、折线图、饼图、散点图、面积图、甜甜圈图、雷达图、3D 曲面图、气泡图、股票图、圆柱图、圆锥图、金字塔图等)|||支持的| |自定义图表 API|||支持的| |文档属性设置|||支持的| |高级 Excel XP 保护选项|||支持的| |加载项、VBA、宏|||支持的| |操作命名范围|支持的|支持的|支持的| |数据透视表|||支持的| |创建常见的绘图对象、形状和控件||支持的|支持的| |将控件插入图表|||支持的| |公式计算引擎|||支持的| |查找 API|支持的|支持的|支持的|