文章目录
- 1.引入依赖库
- 2.示例代码
1.引入依赖库
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
2.示例代码
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ExcelReader {
public static void main(String[] args) {
// Excel 文件路径
String filePath = "your_file_path.xlsx";
readExcel(filePath);
}
public static void readExcel(String filePath) {
try (FileInputStream fis = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(fis)) {
XSSFSheet 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)) {
Date date = cell.getDateCellValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.print(sdf.format(date) + "\t");
} else {
System.out.print(cell.getNumericCellValue() + "\t");
}
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
default:
System.out.print("" + "\t");
}
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上述代码中:
- 首先通过 FileInputStream 读取 Excel 文件。
- 根据文件创建 XSSFWorkbook 对象。
- 获取工作表并遍历其中的行和单元格。
- 通过 cell.getCellType() 判断单元格的数据类型。
- 对于日期类型的单元格,如果是日期格式,使用 DateUtil.isCellDateFormatted(cell) 进行判断,并通过 SimpleDateFormat 格式化输出日期。
将 your_file_path.xlsx 替换为您实际的 Excel 文件路径。