excel表转换成java集合
时间: 2023-08-17 14:05:33 浏览: 168
要将 Excel 表格转换为 Java 集合,你可以使用 Apache POI 库来读取 Excel 文件,并将其中的数据存储到 Java 集合中。下面是一个简单的示例代码:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ExcelToJavaCollectionConverter {
public static void main(String[] args) {
String excelFilePath = "path/to/your/excel/file.xlsx";
List<Map<String, String>> dataList = readExcel(excelFilePath);
// 打印结果
for (Map<String, String> data : dataList) {
System.out.println(data);
}
}
public static List<Map<String, String>> readExcel(String filePath) {
List<Map<String, String>> dataList = new ArrayList<>();
try (FileInputStream fis = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
Row headerRow = sheet.getRow(0); // 获取表头行
int colCount = headerRow.getLastCellNum(); // 获取列数
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
Map<String, String> dataMap = new HashMap<>();
for (int j = 0; j < colCount; j++) {
Cell cell = row.getCell(j);
String header = headerRow.getCell(j).getStringCellValue();
String value = "";
if (cell != null) {
switch (cell.getCellType()) {
case STRING:
value = cell.getStringCellValue();
break;
case NUMERIC:
value = String.valueOf(cell.getNumericCellValue());
break;
case BOOLEAN:
value = String.valueOf(cell.getBooleanCellValue());
break;
case FORMULA:
value = String.valueOf(cell.getCellFormula());
break;
default:
value = "";
}
}
dataMap.put(header, value);
}
dataList.add(dataMap);
}
} catch (IOException e) {
e.printStackTrace();
}
return dataList;
}
}
```
请将 `path/to/your/excel/file.xlsx` 替换为你自己的 Excel 文件路径。以上代码将读取 Excel 文件的第一个工作表,并将每一行的数据存储为一个包含表头和对应值的 Map 对象,然后将这些 Map 对象存储到一个 List 中返回。
阅读全文