@Override
public Integer exportInfo( HttpServletResponse response,String zhgdDeptId,String deptId ) {
// 声明一个工作薄
SXSSFWorkbook workbook = new SXSSFWorkbook();
SXSSFSheet sheet = workbook.createSheet();
//设置基础样式
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
Font font = workbook.createFont();
font.setColor(IndexedColors.WHITE.getIndex());
style.setFont(font);
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 20);
// 设置表头
Row titleRow = sheet.createRow(0);// 表头 rowIndex=0
titleRow.createCell(0).setCellValue("过程(区域)");
titleRow.createCell(1).setCellValue("行为(活动)设备或环境");
titleRow.createCell(2).setCellValue("潜在危险因素");
titleRow.createCell(3).setCellValue("可能导致的结果");
titleRow.createCell(4).setCellValue("危险等级");
titleRow.createCell(5).setCellValue("分部分项");
titleRow.createCell(6).setCellValue("备注");
titleRow.getCell(0).setCellStyle(style);
titleRow.getCell(1).setCellStyle(style);
titleRow.getCell(2).setCellStyle(style);
titleRow.getCell(3).setCellStyle(style);
titleRow.getCell(4).setCellStyle(style);
titleRow.getCell(5).setCellStyle(style);
titleRow.getCell(6).setCellStyle(style);
//填充数据
LambdaQueryWrapper<ZhgdSqDangerItem> queryWrapper = new LambdaQueryWrapper<ZhgdSqDangerItem>();
queryWrapper.eq(ZhgdSqDangerItem::getDeptId,deptId);
if(zhgdDeptId !=null && zhgdDeptId != "" ){
queryWrapper.eq(ZhgdSqDangerItem::getZhgdDeptId,zhgdDeptId);
}
List<ZhgdSqDangerItem> list = zhgdSqDangerItemMapper.selectList(queryWrapper);
int rowIndex = 1;
for (int i = 0; i < list.size(); i++) {
Row row = sheet.createRow(rowIndex);
row.createCell(0).setCellValue(list.get(i).getStepArea());//
row.createCell(1).setCellValue(list.get(i).getAction());//
row.createCell(2).setCellValue(list.get(i).getRiskFactors());//
row.createCell(3).setCellValue(list.get(i).getPossibleResult());//
row.createCell(4).setCellValue(list.get(i).getLevels());//
row.createCell(5).setCellValue(list.get(i).getSubItemsTitle());//
row.createCell(6).setCellValue(list.get(i).getRemark());//
rowIndex++;
}
String name = "辨识表";
//下载
downloadExcel(name, response, workbook);
return list.size();
}
private void downloadExcel(String name, HttpServletResponse response, SXSSFWorkbook workbook) {
BufferedOutputStream fos = null;
try {
String fileName = name + ".xls";
response.setContentType("application/x-msdownload");
response.addHeader("Access-Control-Expose-Headers", "File-Name");
response.addHeader("File-Name", URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Content-Disposition", "attachment;filename="
+ URLEncoder.encode(fileName, "UTF-8"));
fos = new BufferedOutputStream(response.getOutputStream());
workbook.write(fos);
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e.getCause());
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e.getCause());
}
}
}
}