MS Excel 文件主要用於以工作表的形式保存表格數據。通常,龐大的數據集也保存在 Excel 文件中。因此,您可能會遇到需要從 Excel 文件中的工作表讀取和獲取數據的場景。為此,本文展示瞭如何使用 Java 讀取 Excel 文件。我們將演示如何以編程方式讀取整個 Excel 文件或僅讀取單個工作表。
讀取 Excel 文件的 Java 庫
要從工作表中讀取數據,我們將使用 Aspose.Cells for Java。它是一個電子表格操作 API,用於從頭開始創建 Excel 文件。此外,它還允許您非常輕鬆地讀取和操作現有的 Excel 文件。該 API 可以從 下載部分 下載,也可以通過在 pom.xml 中添加以下 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>21.11</version>
</dependency>
用 Java 讀取 Excel 文件
在 Excel 文件中,數據存儲在單元格中,每個單元格由其名稱(A1、B3 等)或行和列索引標識。這些單元格共同形成一個工作表,一個 Excel 文件由單個或多個工作表組成。所有工作表都包含在一個工作簿中。所以這是對 Excel 文件結構的簡要概述。現在讓我們繼續從 Excel 文件中讀取數據。
以下是使用 Java 讀取 Excel 文件並打印其數據的步驟。
- 使用 Workbook 類加載 Excel 文件。
- 創建 WorksheetCollection 類的對象並使用 Workbook.getWorksheets() 方法獲取工作表的引用。
- 啟動一個循環遍歷集合中的所有工作表,並在每次迭代中執行以下步驟:
- 在 Worksheet 對像中獲取工作表的引用。
- 獲取工作表中數據行和列的計數。
- 為行開始一個循環。
- 為列啟動嵌套循環。
- 使用 Worksheet.getCells().get(rowIndex, columnIndex).getValue() 方法從每個單元格讀取數據。
以下代碼示例顯示瞭如何使用 Java 讀取 Excel 文件。
// 加載 Excel 文件
Workbook wb = new Workbook("workbook.xlsx");
// 獲取所有工作表
WorksheetCollection collection = wb.getWorksheets();
// 遍歷所有工作表
for (int worksheetIndex = 0; worksheetIndex < collection.getCount(); worksheetIndex++) {
// 使用其索引獲取工作表
Worksheet worksheet = collection.get(worksheetIndex);
// 打印工作表名稱
System.out.print("Worksheet: " + worksheet.getName());
// 獲取行數和列數
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();
// 遍歷行
for (int i = 0; i < rows; i++) {
// 遍歷所選行中的每一列
for (int j = 0; j < cols; j++) {
// 普林格值
System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
}
// 打印換行符
System.out.println(" ");
}
}
以下是我們在運行上面的代碼示例後在控制台中獲得的輸出。
在 Java 中讀取 Excel 中的特定工作表
您還可以按照以下步驟僅讀取 Excel 文件中的特定工作表。
- 使用 Workbook 類加載 Excel 文件。
- 使用 Workbook.getWorksheets().get(index) 方法在 Worksheet 對像中獲取所需工作表的引用。
- 獲取工作表中數據行和列的計數。
- 為行開始一個循環。
- 為列啟動嵌套循環。
- 使用 Worksheet.getCells().get(rowIndex, columnIndex).getValue() 方法從每個單元格讀取數據。
以下代碼示例顯示瞭如何從 Java 中的特定工作表中讀取數據。
// 加載 Excel 文件
Workbook wb = new Workbook("workbook.xlsx");
// 獲取工作表的參考
Worksheet worksheet = wb.getWorksheets().get(0);
// 獲取行數和列數
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();
// 遍歷行
for (int i = 0; i < rows; i++) {
// 遍歷所選行中的每一列
for (int j = 0; j < cols; j++) {
// 打印單元格值
System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
}
// 打印換行符
System.out.println(" ");
}
獲取免費的 API 許可證
通過獲得免費臨時許可,您可以不受評估限制地使用 Aspose.Cells for Java。
結論
在本文中,您學習瞭如何在 Java 中動態讀取 Excel 文件。借助代碼示例,您了解瞭如何從特定工作表或 Excel 工作簿中的所有工作表讀取數據。此外,您可以使用 文檔 探索 Aspose.Cells for Java 的其他功能。如果您有任何疑問,請隨時通過我們的 論壇 告訴我們。