使用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)));
你接受吗
浙公网安备 33010602011771号