引言
在开发过程中,我们经常会遇到需要读取Excel文件并将数据转换成Java对象的需求。 POI是一个强大的库,它提供了读取和写入 格式文件的功能java读写文件,包括Excel。本文将指导你如何使用 POI读取Excel文件java读写文件,并将数据转换为List>格式,便于进一步的数据处理和分析。
准备工作
首先,确保你的项目中包含了 POI的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:
org.apache.poi
poi-ooxml
5.2.2
org.apache.poi
poi
5.2.2
org.apache.logging.log4j
log4j-api
2.17.1
org.apache.logging.log4j
log4j-core
2.17.1
commons-io
commons-io
2.11.0
步骤详解
下面是使用 POI读取Excel文件的具体步骤:
package com.xsz.programmingarsenal.utils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelReader {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream(new File("C:\tmp\test.xlsx"));
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0); // 假设我们只读取第一个工作表
List<Map> data = new ArrayList();
// 获取第一行作为列头
Row headerRow = sheet.getRow(0);
if (headerRow != null) {
for (int i = 1; i <= sheet.getLastRowNum(); i++) { // 从第二行开始读取数据
Row row = sheet.getRow(i);
if (row != null) {
Map rowData = new HashMap();
for (Cell cell : headerRow) {
int colIndex = cell.getColumnIndex();
Cell dataCell = row.getCell(colIndex);
if (dataCell != null) {
// rowData.put(cell.getStringCellValue(), dataCell.getStringCellValue());
rowData.put(getStringValue(cell), getStringValue(dataCell));
}
}
data.add(rowData);
}
}
}
// 关闭资源
workbook.close();
fis.close();
// 打印结果
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getStringValue(Cell cell ){
CellType cellType = cell.getCellType();
String cellValue = null;
switch (cellType) {
case STRING:
cellValue = cell.getStringCellValue();
break;
case NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
// 如果是日期格式的数值,则转换为日期字符串
cellValue = cell.getDateCellValue().toString();
} else {
// 否则,转换为数字字符串
cellValue = String.valueOf(cell.getNumericCellValue());
}
break;
case BOOLEAN:
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
// 处理公式单元格
cellValue = cell.getCellFormula();
break;
case BLANK:
cellValue = ""; // 或者null,取决于你的需求
break;
case ERROR:
cellValue = "ERROR"; // 或者抛出异常,取决于你的需求
break;
default:
throw new IllegalStateException("Unexpected cell type: " + cellType);
}
return cellValue;
// 现在你可以安全地使用cellValue了
}
}
测试
测试数据
结果
结语
通过上述步骤,你现在已经掌握了如何使用Java和 POI库读取Excel文件,并将数据转换为List>格式的方法。这种方法非常适合需要对Excel数据进行进一步处理和分析的场景。希望这篇博客能帮助你在日常开发中更加高效地处理Excel文件。
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。