java如何读取excel
读取 Excel 文件的方法
在 Java 中读取 Excel 文件通常使用 Apache POI 或 JExcelAPI 等库。以下是几种常见的方法:
使用 Apache POI 读取 .xlsx 文件
Apache POI 是处理 Microsoft Office 文件的流行库,支持 .xls 和 .xlsx 格式。
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadExcel {
public static void main(String[] args) {
String filePath = "example.xlsx";
try (FileInputStream fis = new FileInputStream(filePath);
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:
System.out.print(cell.getNumericCellValue() + "\t");
break;
default:
System.out.print("\t");
}
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Apache POI 读取 .xls 文件
对于较旧的 .xls 格式,使用 HSSFWorkbook 类。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadExcelOld {
public static void main(String[] args) {
String filePath = "example.xls";
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new HSSFWorkbook(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:
System.out.print(cell.getNumericCellValue() + "\t");
break;
default:
System.out.print("\t");
}
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 JExcelAPI 读取 Excel 文件
JExcelAPI 是另一个处理 Excel 文件的库,但仅支持 .xls 格式。
import jxl.*;
import jxl.read.biff.BiffException;
import java.io.File;
import java.io.IOException;
public class ReadExcelJExcel {
public static void main(String[] args) {
String filePath = "example.xls";
try {
Workbook workbook = Workbook.getWorkbook(new File(filePath));
Sheet sheet = workbook.getSheet(0);
for (int row = 0; row < sheet.getRows(); row++) {
for (int col = 0; col < sheet.getColumns(); col++) {
Cell cell = sheet.getCell(col, row);
System.out.print(cell.getContents() + "\t");
}
System.out.println();
}
workbook.close();
} catch (IOException | BiffException e) {
e.printStackTrace();
}
}
}
注意事项
-
使用 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> -
处理大文件时,使用
SXSSFWorkbook以避免内存问题。 -
检查文件路径和格式,确保文件存在且可读。






