前言
JAVA POI 实现 Excel 导出(List<Map<String,Object>>类型数据导出)
一、示例
private void exportExcel(HttpServletResponse response, List<Map<String, Object>> list) {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("sheet1");
//表头
XSSFRow headRow = sheet.createRow(0);
//取List的第一个元素进行遍历,找出所有key作为表头
Iterator<Map.Entry<String, Object>> iterator = list.get(0).entrySet().iterator();
int i = 0;
//用于数据行查找
List<Object> headRowData = new ArrayList<>();
while (iterator.hasNext()) {
String next = iterator.next().getKey();
//设置表头
headRow.createCell(i).setCellValue(new XSSFRichTextString(next));
headRowData.add(next);
i++;
}
//列表
int rowNUm = 1;
for (Map<String, Object> dataMap : list) {
//创建数据行
XSSFRow dataRow = sheet.createRow(rowNUm);
for (int j = 0, size = headRowData.size(); j < size; j++) {
//设置数据
dataRow.createCell(j).setCellValue(dataMap.get(headRowData.get(j)).toString());
}
rowNUm++;
}
//数据导出
response.setContentType("application/octet-stream;charset=UTF-8");
try {
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("excelName.xlsx", "UTF-8"));
workbook.write(response.getOutputStream());
} catch (Exception e) {
}
}
总结
如果这篇博客对你有帮助的话,记得给我点个赞,你的鼓励是对我最大的支持!谢谢。◕‿◕。