目錄
Toggle導言
在Java中讀取Excel文件是一個常見的需求,這可以幫助我們自動化處理大量的數據。Apache POI是一個強大的Java庫,可以用來讀取和寫入Microsoft Office文件,包括Excel。本文將詳細介紹如何在Java中使用Apache POI來讀取Excel文件。
準備工作
添加Maven依賴
首先,我們需要在專案的pom.xml文件中添加Apache POI的依賴。以下是需要添加的Maven依賴:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
讀取Excel文件
建立Java Class
我們首先需要創建一個Java類,並在其中編寫代碼來讀取Excel文件。以下是一個簡單的Java Class範本:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelReader {
public static void main(String[] args) {
String excelFilePath = "path_to_your_excel_file.xlsx";
try {
FileInputStream fis = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0);
for (Row row : sheet) {
for (Cell cell : row) {
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "t");
break;
case NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
System.out.print(cell.getDateCellValue() + "t");
} else {
System.out.print(cell.getNumericCellValue() + "t");
}
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "t");
break;
case FORMULA:
System.out.print(cell.getCellFormula() + "t");
break;
default:
System.out.print(" t");
break;
}
}
System.out.println();
}
workbook.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
解析Excel數據
這段代碼展示了如何讀取Excel文件的每一個sheet、row和cell。代碼會先打開指定路徑的Excel文件,然後遍歷每一個行和列的數據,根據不同的數據類型輸出相應的值。
支持多種Excel格式
上面的例子只展示了如何讀取XLSX(Excel 2007及以後的版本)文件。如果你需要處理XLS(Excel 97-2003)文件,代碼中需要進行一些修改。
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
FileInputStream fis = new FileInputStream(new File(excelFilePath));
Workbook workbook;
if (excelFilePath.endsWith("xlsx")) {
workbook = new XSSFWorkbook(fis);
} else if (excelFilePath.endsWith("xls")) {
workbook = new HSSFWorkbook(fis);
} else {
throw new IllegalArgumentException("The specified file is not Excel file");
}
結語
通過本文的介紹,相信大家已經掌握了如何使用Java和Apache POI來讀取Excel文件的基本方法。更多高级功能和配置選項,可以參照Apache POI的官方文檔以進一步學習和應用。如果遇到任何問題,歡迎參考Apache POI的官方文檔或社群資源,祝大家學習愉快。