需求:
导出数据到excel中,数据中包含图片。
导入jar包:
org.apache.poi
poi
3.9
org.apache.poi
poi-ooxml
3.9
org.apache.poi
poi-ooxml-schemas
3.9
@GetMapping("/exportRemoteDetectionResult")
@ResponseBody
@ApiOperation(value = "导出切片结果到excel",httpMethod = "GET")
public void exportRemoteDetectionResult(@RequestParam List idList,HttpServletResponse response){
//根据id获取所有要导出的数据
List list = remoteDetectionResultService.getByIdList(idList);
//导出的标题
String[] title = {"目标名称","目标类别","置信度","目标位置","目标切片","目标检测时间","所属影像","影像拍摄时间","影像来源"};
//excel名称
String fileName = "切片报告.xls";
//sheet名称
String sheetName = "切片信息";
//调用导出方法
HSSFWorkbook wb = getHSSFWorkbook(sheetName, title, list,null);
try {
this.setResponseHeader(response, fileName);
OutputStream os = response.getOutputStream();
wb.write(os);
os.flush();os.close();
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
//导出切片excel的方法
public HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,List list, HSSFWorkbook wb){
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
row.setHeight((short) 650);
// 第四步,创建单元格,并设置表头值 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//声明列对象
HSSFCell cell = null;
//创建标题
for(int i=0;i
点击查看:
new HSSFClientAnchor(参数说明)
导出结果图
参考文章:
https://blog.csdn.net/qq_40100817/article/details/82799036



