package com.taiji.web.controller;
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;
import static java.sql.Types.BOOLEAN;
import static java.sql.Types.NUMERIC;
import static org.aspectj.apache.bcel.classfile.annotation.ElementValue.STRING;
public class ss {
public static void main(String[] args) {
String filePath = "D:\\33.xlsx";
List<Map<String, Object>> jsonData = readExcel(filePath);
System.out.println(jsonData);
}
public static List<Map<String, Object>> readExcel(String filePath) {
List<Map<String, Object>> jsonData = new ArrayList<>();
try (FileInputStream fis = new FileInputStream(filePath)) {
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheetAt(0); // 假设只处理第一个Sheet
Row headerRow = sheet.getRow(0); // 假设第一行为表头
for (int i = 1; i <= sheet.getLastRowNum(); i++) { // 从第二行开始处理数据行
Row row = sheet.getRow(i);
Map<String, Object> data = new HashMap<>();
for (int j = 0; j < headerRow.getLastCellNum(); j++) {
Cell headerCell = headerRow.getCell(j);
Cell dataCell = row.getCell(j);
String header = getCellValue(headerCell);
Object value = getCellValue(dataCell);
data.put(header, value);
}
jsonData.add(data);
}
} catch (IOException e) {
e.printStackTrace();
}
return jsonData;
}
private static String getCellValue(Cell cell) {
if (cell == null) {
return "";
}
switch (cell.getCellType()) {
case STRING:
return cell.getStringCellValue();
case NUMERIC:
return String.valueOf(cell.getNumericCellValue());
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
default:
return "";
}
}
}