MS Excel 提供了一种简单的方法来保存和共享大量表格数据。此外,您还可以执行各种操作,例如应用公式、生成图表和图形、排序和过滤数据等。在本文中,您将了解如何在 Java 应用程序中实现 Excel 自动化功能。我们将演示如何在 Java 中从头开始创建 Excel XLSX 或 XLS 文件。此外,我们还将介绍如何更新现有 Excel 文件、生成图表、应用公式以及在 Excel 工作表中添加数据透视表。

用于创建 Excel 文件的 Java API - 免费下载

Aspose.Cells for Java 是一个功能强大的电子表格操作 API,可让您在没有 MS Office 的情况下创建或修改 Excel 文件。 API 支持以编程方式添加图表、图形、公式和执行其他电子表格操作操作。您可以免费 下载 API 或将其安装在基于 Maven 的应用程序中。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>20.9</version>
</dependency>

在 Java 中创建 Excel XLSX 或 XLS

MS Excel 文件称为工作簿,每个工作簿由一个或多个工作表组成。工作表还包含行和列,以将数据保存为单元格的形式。因此,让我们从创建一个简单的工作簿开始。以下是从头开始创建 Excel XLSX 文件的步骤。

  • 创建 Workbook 类的实例。
  • 使用 Workbook.getWorksheets.get() 方法访问所需的工作表。
  • 使用单元格的标识符(例如 A1、B3 等)将值放入工作表中所需的单元格中。
  • 使用 Workbook.save() 方法将工作簿保存为 Excel 文件。

以下代码示例展示了如何使用 Java 创建 Excel XLSX 文件。

// 创建新工作簿
Workbook workbook = new Workbook();

// 在单元格中添加值
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!");

// 另存为 Excel XLSX 文件
workbook.save("Excel.xlsx"); 

用 Java 编辑 Excel XLSX 文件

现在让我们看看如何修改或插入数据到现有的 MS Excel 文件中。为此,您可以简单地加载文件、访问所需的工作表并保存更新的文件。以下是修改现有 Excel 文件的步骤。

  • 使用 Workbook 类打开 Excel 文件。
  • 分别使用 WorksheetCell 类访问工作表和单元格。
  • 将更新的工作簿另存为 Excel .xlsx 文件。

以下代码示例展示了如何使用 Java 编辑现有的 MS Excel 文件。

// 创建新工作簿
Workbook workbook = new Workbook("workbook.xls"); 

// 从工作表的单元格中获取“A1”单元格的引用
Cell cell = workbook.getWorksheets().get(0).getCells().get("A1");

// 设置“Hello World!”值进入“A1”单元格
cell.setValue("updated cell value.");

// 编写 Excel 文件
workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);

Java 创建带有图表或图形的 Excel 文件

电子表格中的图表用于直观地表示存储在工作表中的数据。它们使分析大量数据变得更加容易。 Aspose.Cells for Java 提供了广泛的图表,您可以通过编程方式在 Excel 文件中创建这些图表。以下是在 Java 中创建具有图表的 Excel 文件的步骤。

  • 使用 Workbook 类创建新的 Excel 文件或加载现有的文件。
  • 将数据添加到工作表(可选)。
  • 使用 Worksheet.getCharts() 方法获取工作表的图表集合。
  • 使用 Worksheet.getCharts().add() 方法添加新图表。
  • 从集合中获取新创建的图表。
  • 指定单元格的范围以设置图表的 NSeries。
  • 将工作簿另存为 Excel .xlsx 文件。

以下代码示例展示了如何使用 Java 中的图表创建 Excel XLSX 文件。

// 创建新工作簿
Workbook workbook = new Workbook("workbook.xlsx"); 

// 获取第一个工作表的引用
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);

// 向单元格添加一些样本值
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(50);

// 在工作表中获取图表
ChartCollection charts = sheet.getCharts();

// 将图表添加到工作表
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);

// 将 NSeries(图表数据源)添加到图表中,范围从“A1”
// 单元格到“B3”
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);

// 编写 Excel 文件 
workbook.save("Excel_with_Chart.xlsx");
使用java在excel中创建图表

Java 创建具有数据透视表的 XLSX 文件

Excel 工作表中的数据透视表有多种用途,例如向数据添加过滤器、计算总计、汇总数据等。可以使用工作表中的单元格范围创建数据透视表。以下是用 Java 在 Excel 文件中创建数据透视表的步骤。

  • 创建一个新的 Workbook 或加载一个现有文件。
  • 将数据插入工作表(可选)。
  • 使用 Worksheet.getPivotTables() 方法访问数据透视表集合。
  • 使用 Worksheet.getPivotTables().add() 方法在工作表中添加一个新的数据透视表。
  • 向数据透视表提供数据。
  • 保存工作簿。

以下代码示例展示了如何使用 Java 在 Excel 中创建数据透视表。

// 创建新工作簿
Workbook workbook = new Workbook("workbook.xlsx"); 

// 获取第一个工作表。
Worksheet sheet = workbook.getWorksheets().get(0);

// 获取 Worksheet 的单元格集合
Cells cells = sheet.getCells();

// 为单元格设置值
Cell cell = cells.get("A1");
cell.setValue("Sport");
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Sales");

cell = cells.get("A2");
cell.setValue("Golf");
cell = cells.get("A3");
cell.setValue("Golf");
cell = cells.get("A4");
cell.setValue("Tennis");
cell = cells.get("A5");
cell.setValue("Tennis");
cell = cells.get("A6");
cell.setValue("Tennis");
cell = cells.get("A7");
cell.setValue("Tennis");
cell = cells.get("A8");
cell.setValue("Golf");

cell = cells.get("B2");
cell.setValue("Qtr3");
cell = cells.get("B3");
cell.setValue("Qtr4");
cell = cells.get("B4");
cell.setValue("Qtr3");
cell = cells.get("B5");
cell.setValue("Qtr4");
cell = cells.get("B6");
cell.setValue("Qtr3");
cell = cells.get("B7");
cell.setValue("Qtr4");
cell = cells.get("B8");
cell.setValue("Qtr3");

cell = cells.get("C2");
cell.setValue(1500);
cell = cells.get("C3");
cell.setValue(2000);
cell = cells.get("C4");
cell.setValue(600);
cell = cells.get("C5");
cell.setValue(1500);
cell = cells.get("C6");
cell.setValue(4070);
cell = cells.get("C7");
cell.setValue(5000);
cell = cells.get("C8");
cell.setValue(6430);


PivotTableCollection pivotTables = sheet.getPivotTables();

// 将数据透视表添加到工作表
int index = pivotTables.add("=A1:C8", "E3", "PivotTable2");

// 访问新添加的数据透视表的实例
PivotTable pivotTable = pivotTables.get(index);

// 不显示行的总计。
pivotTable.setRowGrand(false);

// 将第一个字段拖到行区域。
pivotTable.addFieldToArea(PivotFieldType.ROW, 0);

// 将第二个字段拖到列区域。
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1);

// 将第三个字段拖到数据区域。
pivotTable.addFieldToArea(PivotFieldType.DATA, 2);

// 编写 Excel 文件 
workbook.save("Excel_with_Chart.xlsx");
使用java在excel中创建数据透视表

在 Java 中为 Excel 文件中的单元格添加公式

Aspose.Cells for Java 还允许您使用 Excel 工作表中的公式。您可以将内置函数和附加函数应用于单元格。

在 Excel 中应用内置函数

要使用内置函数,您只需访问工作表中所需的单元格并使用 Cell.setFormula(String) 方法添加公式。以下代码示例展示了如何使用 Java 设置内置公式。

// 创建新工作簿
Workbook workbook = new Workbook();

// 在单元格中添加值
workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))");

// 另存为 Excel XLSX 文件
workbook.save("Excel.xlsx"); 

在 Excel 中添加加载项函数

可能存在必须使用用户定义函数的情况。为此,您必须使用 .xlam(启用 Excel 宏的加载项)文件注册加载项函数,然后将其用于所需的单元格。为了注册插件函数,Aspose.Cells for Java 提供了 registerAddInFunction(int, String)registerAddInFunction(String, String, boolean) 方法。以下代码示例显示了如何使用 Java 注册和使用加载项函数。

// 创建一个新工作簿
Workbook workbook = new Workbook();

// 注册启用宏的加载项以及函数名称
int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false);

// 在文件中注册更多函数(如果有)
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file

// 访问第一个工作表
Worksheet worksheet = workbook.getWorksheets().get(0);

// 访问第一个单元格
Cell cell = worksheet.getCells().get("A1");

// 设置加载项中存在的公式名称
cell.setFormula("=TEST_UDF()"); 

// 另存为 Excel XLSX 文件
workbook.save("Excel.xlsx"); 

用于创建 Excel XLS XLSX 文件的 Java API - 获得免费许可证

您可以通过获得 免费临时许可证 来使用该 API,而不受评估限制。

结论

在本文中,您了解了如何在没有 MS Office 的情况下使用 Java 从头开始创建 MS Excel 文件。您还学习了如何更新工作簿、创建图表、添加表格以及将公式应用于 MS Excel 工作表中的单元格值。您可以使用 文档 了解有关 Aspose 的 Java Excel API 的更多信息。

也可以看看

使用 Java 将 Excel 文件转换为 PDFJava 中的 JSON 到 ExcelC# 中的 Word 到 JSON
Python 中的 Word 转 JSONC# 中的 DOC 到 JSONPython中Excel文件转JSON
XLSX 到 C# 中的 JSONXLS 到 C# 中的 JSONJava 中的 XLSX 到 JSON
Java 中的 Excel 到 JSONJava 中 DOCX 到 JSONJava 中的 DOC 到 JSON
Java 中的 Word 到 JSONJava 中的 TXT 转 JSONPython 中的 JSON 到 PDF
Java 中的 Excel 到 JSONPython 中的 TXT 转 JSON在 C# .NET 中将 Excel 文件转换为 Google 表格
Java 中将 Excel 转换为 JSONJava 中将 Excel XLS/XLSX 转换为 CSV在 Python 中将 Excel XLS 文件转换为 XLSX
使用 C# .NET 在电子邮件正文中发送 Excel 数据在 Python 中将 Excel 数据导出到 Google 表格在 Java 中将 Excel 文件转换为 Google 表格