hutool excel 将List<Map>写入多个shell
时间: 2023-12-05 15:04:17 浏览: 125
您可以使用 Hutool Excel 的 ExcelWriter 类来将 List<Map> 写入多个 shell。
以下是一个示例代码:
```java
// 创建 ExcelWriter 对象
ExcelWriter writer = ExcelUtil.getWriter("output.xlsx");
// 定义表头
List<String> headerList = new ArrayList<>();
headerList.add("姓名");
headerList.add("年龄");
headerList.add("性别");
// 写入表头
writer.writeHeadRow(headerList);
// 写入数据
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> dataMap1 = new HashMap<>();
dataMap1.put("姓名", "张三");
dataMap1.put("年龄", 18);
dataMap1.put("性别", "男");
dataList.add(dataMap1);
Map<String, Object> dataMap2 = new HashMap<>();
dataMap2.put("姓名", "李四");
dataMap2.put("年龄", 20);
dataMap2.put("性别", "女");
dataList.add(dataMap2);
Map<String, Object> dataMap3 = new HashMap<>();
dataMap3.put("姓名", "王五");
dataMap3.put("年龄", 22);
dataMap3.put("性别", "男");
dataList.add(dataMap3);
// 将数据按指定行数分组,写入多个 shell
int rowNumPerSheet = 2;
List<List<Map<String, Object>>> dataListGroup = ListUtil.group(dataList, rowNumPerSheet);
for (int i = 0; i < dataListGroup.size(); i++) {
List<Map<String, Object>> dataListPerSheet = dataListGroup.get(i);
writer.setSheet(i + 1);
writer.write(dataListPerSheet, true);
}
// 关闭 ExcelWriter 对象
writer.close();
```
该示例将一个包含三条记录的 List<Map> 写入两个 shell,每个 shell 包含两条记录。输出的 Excel 文件中包含两个 shell,分别为“Sheet1”和“Sheet2”,每个 shell 包含两条记录。
阅读全文