Controller:
@PostMapping("/export")
@ApiOperation("导出列表")
public ByteFile exportQueryList(@RequestBody ListQo listQo) throws IOException {
return service.exportQueryList(listQo);
}
Service:
@Override
public ByteFile exportQueryList(ListQo listQo) throws IOException {
List<ListPojo> list = mapper.exportQueryList(listQo);
List<ExcelExportEntity> titles = new ArrayList<>();
titles.add(new ExcelExportEntity("中文名称", "k-1"));
titles.add(new ExcelExportEntity("项目名称", "k-2"));
List<Map<String, Object>> mapList = new ArrayList<>();
list.forEach(item -> {
Map<String, Object> map = new HashMap<>();
map.put("k-1", item.getPlatformCd());
map.put("k-2", TimeUtils.format(item.getSorpDate(), DateFormat.SKRIKEDATE));
mapList.add(map);
});
String fileName = "产品列表";
ExportParams pm = new ExportParams();
pm.setSheetName(fileName);
pm.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(pm, titles, mapList);
ByteFile export = new ByteFile();
export.setBytes(EasyPoiUtil.toByte(workbook));
export.setFileName(fileName);
return export;
}
EasyPoiUtil:
package com.sgm.qmdm.utils.easypoi;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import com.monitorjbl.xlsx.StreamingReader;
import com.monitorjbl.xlsx.impl.StreamingSheet;
import com.sgm.qmdm.utils.BigDecimalUtil;
import com.sgm.qmdm.utils.NumberVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
impo