ExcelUtil导出单个excel多个sheet
时间: 2023-10-29 17:05:24 浏览: 83
1. 创建ExcelUtil类,添加以下方法:
```java
public static void createExcel(List<List<Object>> dataList, List<String> sheetNameList, String filePath) {
try {
XSSFWorkbook workbook = new XSSFWorkbook();
for (int i = 0; i < dataList.size(); i++) {
XSSFSheet sheet = workbook.createSheet(sheetNameList.get(i));
List<Object> data = dataList.get(i);
// 添加表头
XSSFRow headRow = sheet.createRow(0);
for (int j = 0; j < data.size(); j++) {
XSSFCell cell = headRow.createCell(j);
cell.setCellValue(data.get(j).toString());
}
// 添加数据
for (int j = 1; j <= 10; j++) {
XSSFRow row = sheet.createRow(j);
for (int k = 0; k < data.size(); k++) {
XSSFCell cell = row.createCell(k);
cell.setCellValue(data.get(k).toString() + j);
}
}
}
FileOutputStream out = new FileOutputStream(filePath);
workbook.write(out);
out.close();
System.out.println("Excel文件创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
```
2. 调用createExcel方法,传入数据列表、sheet名称列表和文件路径:
```java
public static void main(String[] args) {
List<List<Object>> dataList = new ArrayList<>();
List<String> sheetNameList = new ArrayList<>();
List<Object> data1 = new ArrayList<>();
data1.add("姓名");
data1.add("年龄");
data1.add("性别");
dataList.add(data1);
sheetNameList.add("Sheet1");
List<Object> data2 = new ArrayList<>();
data2.add("张三");
data2.add("18");
data2.add("男");
dataList.add(data2);
sheetNameList.add("Sheet2");
List<Object> data3 = new ArrayList<>();
data3.add("李四");
data3.add("20");
data3.add("女");
dataList.add(data3);
sheetNameList.add("Sheet3");
ExcelUtil.createExcel(dataList, sheetNameList, "D:/test.xlsx");
}
```
运行后,会在D盘根目录下生成一个名为test.xlsx的Excel文件,包含三个sheet,每个sheet中有一个数据列表。