使用hutool的excelUtil导出 和 预览

导出开始:

开发步骤:

1、查询数据列表

2、组装exportItem数据项

3、设置excel首行

4、导出

 

@ApiOperation("导出")
@PostMapping("/export")
public void exportList(@RequestBody Query query, HttpServletResponse response) throws Exception{
List<ListDTO> list = Service.queryList(query);
if(CollUtil.isEmpty(list)){
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("没有找到符合条件的数据");
return;
}
List<Map<String, Object>> exportList = new ArrayList<>();
for(ListDTO dto : list){
Map<String, Object> exportItem = new LinkedHashMap<>();
exportItem.put("entityName",dto.getEntityName());
exportItem.put("certificateNum",dto.getCertificateNum());

exportList.add(exportItem);
}

String tempPath = System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer = ExcelUtil.getBigWriter(file);

writer.addHeaderAlias("entityName","实体名称");
writer.addHeaderAlias("certificateNum","证件号码/统一社会信用代码");

writer.write(exportList,true);

// 获取sheet并设置列宽
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
sheet.trackAllColumnsForAutoSizing();

// 手动设置列宽,确保表头完整显示
sheet.setColumnWidth(0, 20 * 256); // 实体名称
sheet.setColumnWidth(1, 20 * 256); // 证件号码/统一社会信用代码

// 设置响应头
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=vendor_black_list_export.xlsx");

// 写入响应流
try (ServletOutputStream out = response.getOutputStream()) {
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
}

// 关闭writer,释放内存
writer.close();

}

导出结束

预览开始:
import cn.afterturn.easypoi.entity.vo.NormalExcelConstants;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.ExcelXorHtmlUtil;
import cn.afterturn.easypoi.excel.entity.ExcelToHtmlParams;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.view.PoiBaseView;

ExportParams exportParams = getExportParams(params, page);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, getEntityClass(), page.getRecords());

return success(ExcelXorHtmlUtil.excelToHtml(new ExcelToHtmlParams(workbook)));
 

posted on 2025-08-29 10:28  黑子菜园  阅读(246)  评论(0)    收藏  举报

导航