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 文件中創建數據透視表的步驟。

  • 創建新的 工作簿 或加載現有文件。
  • 將數據插入工作表(可選)。
  • 使用 Worksheet.getPivotTables() 方法訪問數據透視表集合。
  • 使用 Worksheet.getPivotTables().add() 方法在工作表中添加一個新的數據透視表。
  • 向數據透視表提供數據。
  • 保存工作簿。

以下代碼示例顯示瞭如何使用 Java 在 Excel 中創建數據透視表。

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

// 得到第一個工作表。
Worksheet sheet = workbook.getWorksheets().get(0);

// 獲取工作表的單元格集合
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 到 JSONExcel 文件在 Python 中轉為 JSON
C# 中的 XLSX 到 JSONC# 中的 XLS 到 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 轉換為 JSON在 Java 中將 Excel XLS/XLSX 轉換為 CSV在 Python 中將 Excel XLS 文件轉換為 XLSX
使用 C# .NET 在電子郵件正文中發送 Excel 數據使用 Python 將 Excel 數據導出到 Google 表格用 Java 將 Excel 文件轉換為 Google 表格