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可以导入图表、命名范围、页眉和页脚,并插入超链接和图像,以及从设计电子表格导入公式。
格式化
工作表数据格式化很重要,因为它可以改变数据的含义。如果你打算打印工作表、将其通过电子邮件发送给客户或向老板展示,你需要考虑它是否以一种易于查看的方式进行了格式化。慎用颜色、填充、边框、字体、数字格式、对齐、缩进和方向,可以让一团混乱的数据变成一个易于处理和理解的工作表。
Aspose.Cells for Java 提供了在单元格和单元格范围周围绘制边框的灵活性。此外,API 还能应用字体设置(字体系列和类型、样式、大小、颜色和对齐)并给单元格涂上背景图案。API 足够高效,您可以格式设置完整的行或列,设置对齐方式,在单元格中包装和旋转文本。
Aspose.Cells for Java 支持包括通用格式、十进制法中的数字、货币符号、百分比、科学格式、日期/时间值甚至自定义数字格式在内的所有类型的数字格式。
Aspose.Cells允许开发人员一次性自动调整行和列的大小,并在方便的API中配置所有类型的页面设置选项:上、左、下、右、页眉和页脚边距、方向 - 纵向或横向 - 缩放、纸张大小、打印区域、重复行和列等。
唯一功能
开发人员还将发现在 Aspose.Cells for Java 中一些独特的功能,例如支持一系列格式,包括 XLS、XLT、XLSX、CSV、SpreadsheetML、制表符分隔、TXT、XML 和 HTML。
该 API 还允许开发者将现有工作表的完整内容、图像和图表添加到文件中,通过 API 为图表设置渐变背景,创建注释,设置区域设置和区域设置,自动筛选和分页设置,设置复杂的公式,条件格式,Microsoft Excel XP 或更高版本引入的所有类型的保护选项,并操作命名范围。
此外,Aspose.Cells 还添加了自定义图表 API 和高效的公式计算引擎。
尝试 Aspose.Cells for Java
Aspose.Cells for Java 拥有大量功能。要了解更多内容,请查看文档和在线演示的程序员指南。
请尝试该组件,体验它和其他竞品之间的差异。评估版本完全免费,没有时间限制。下载 免费的评估版本。
其他 API
JExcelAPI
JExcelAPI 是用于读取、写入和修改 Excel 电子表格的 Java API。它是一个开源的 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 是 POI 的组件,用于读取和写入 Excel 电子表格。它拥有比 JExcelAPI 更丰富的功能,包括读取和写入原生的 Microsoft Excel 文件(不支持 Excel97-2003 - XLSX OOXML 文件格式)、格式化单元格(数字格式、字体、颜色、边框、对齐等)、合并单元格、页面设置选项、导入图像、形状、命名范围、创建注释、页眉和页脚、超链接、自动调整行和列等。
有限的图表支持
对于 POI-HSSF API,存在一些已知的限制。例如,目前无法创建图表。不过,你可以在 Excel 中创建图表,使用 HSSF 修改图表数据值,然后写出新的电子表格。另一个限制是数据透视表支持,无法生成数据透视表。
公式计算
尽管 POI 的 org.apache.poi.hssf.usermodel 支持公式,但其公式计算引擎较弱。它支持包含单元格引用字符串、整数和浮点数文字、相对或绝对引用、算术和逻辑运算符的公式,但不支持数组公式、一元运算符和三维引用。
缺失的功能
HSSF API 也不支持数据透视表。它对要在单元格上设置的数据验证选项有限。此外,它也不支持数据排序和自动过滤数据等功能。
功能比较
下表尝试概述Aspose.Cells for Java与上述开源组件的功能对比,尽管它并不打算覆盖所有参与产品提供的功能。这只是一个概要,是在某个特定时间获取的,可能在您阅读文档时缺失的功能可以被支持。
功能 | JExcelAPI | POI的HSSF | Aspose.Cells for Java |
---|---|---|---|
文件格式 | |||
读取和写入文件格式(XLS、XLT、XLSX、CSV、SpreadsheetML、Tab Delimited、TXT、XML 和 HTML) | 部分支持 | 部分支持 | 支持 |
打开文件并保存到流 | 支持 | ||
将 Excel 文件转换为 PDF 文档 | 支持 | ||
受密码保护的文件 | 支持 | 支持 | |
操作电子表格内容 | |||
修改 Excel 文件的文档属性 | 支持 | ||
将工作表数据导出为数组 | 支持 | ||
从 ResultSet 导入数据 | 支持 | ||
从数组、集合导入数据 | 支持 | ||
添加现有工作表的副本(包括所有内容、图像和图表) | 部分支持 | 部分支持 | 支持 |
导入图像 | 支持 | ||
导入图表 | 支持 | ||
使用API为图表设置渐变背景 | 支持 | ||
保护工作表,包括内容、对象和场景 | 部分支持 | 支持 | 支持 |
使用API创建自动筛选器 | 支持 | ||
页面设置功能(上、左、下、右、页眉和页脚边距、纵向或横向方向、缩放、纸张大小、打印区域、重复行和列) | 部分支持 | 支持 | 支持 |
通过API设置水平和垂直分页 | 支持 | 支持 | 支持 |
在工作簿内部和工作簿之间复制和移动工作表 | 支持 | 支持 | |
插入和删除行和列 | 支持 | 支持 | |
自动适应行和列 | 支持 | 支持 | |
复制行和列 | 支持 | ||
数据排序 | 支持 | ||
追踪前导和从属 | 支持 | ||
自动筛选 | 支持 | ||
数据验证(所有类型) | 部分支持 | 部分支持 | 支持 |
从设计电子表格中导入公式 | 部分支持 | 部分支持 | 支持 |
通过API设置复杂公式 | 支持 | ||
条件格式设置 | 支持 | 支持 | |
激活工作表并使活动单元格成为工作簿中的活动单元格。 | 支持 | 支持 | 支持 |
高级功能 | |||
智能标记 | 支持 | ||
创建标准图表(柱状图、条形图、折线图、饼图、散点图、面积图、圆环图、雷达图、3D表面图、气泡图、股票图、圆柱图、圆锥图、金字塔图等) | 支持 | ||
自定义图表 API | 支持 | ||
文档属性设置 | 支持 | ||
高级 Excel XP 保护选项 | 支持 | ||
Add-ins、VBA、宏 | 支持 | ||
操作命名区域 | 支持 | 支持 | 支持 |
数据透视表 | 支持 | ||
创建常见绘图对象、形状和控件 | 支持 | 支持 | |
将控件插入图表 | 支持 | ||
公式计算引擎 | 支持 | ||
查找 API | 支持 | 支持 | 支持 |