1.前端
function exportTable() {
var row
= $('#archviesDisinfectionTask_selectMission_dg').datagrid('getSelected');
if(row
){
window
.open(basePath
+ "sterilize/exportPDF?batchSterilizer="+row
.batchSterilizer
);
}else{
$
.messager
.alert('警告','请先选择要导出的记录','info');
}
}
2.后端-制作表格
public void exportSecurityTableForPdf(String batchSterilizer
,HttpServletResponse response
) throws Exception
{
Workbook workbook
= new Workbook();
Worksheet sheet
= workbook
.getWorksheets().get(0);
sheet
.getRange().get("A1:J1").merge();
sheet
.getCellRange("A1").setText("消毒安全操作表");
sheet
.getCellRange("A1").getCellStyle().getExcelFont().setSize(16);
sheet
.getCellRange("A1").getCellStyle().getExcelFont().isBold(true);
sheet
.getCellRange("A1").getCellStyle().setHorizontalAlignment(HorizontalAlignType
.Center
);
sheet
.getCellRange("A1").getCellStyle().setWrapText(true);
sheet
.getCellRange("A1:J1").setRowHeight(25);
sheet
.getCellRange("A2").setText("日期");
sheet
.getCellRange("B2").setText("档案编号");
sheet
.getCellRange("C2").setText("消毒开始时间(40分钟)");
sheet
.getCellRange("D2").setText("消毒结束时间");
sheet
.getCellRange("E2").setText("消毒浓度(0.2mg/m³)");
sheet
.getCellRange("F2").setText("分解臭氧开始时间(20分钟)");
sheet
.getCellRange("G2").setText("分解臭氧结束时间");
sheet
.getCellRange("H2").setText("分解后臭氧浓度(oppm)");
sheet
.getCellRange("I2").setText("操作员");
sheet
.getCellRange("J2").setText("负责人");
List
<InventoryCheckAccpet> listtList
= inventoryCheckAccpetRepository
.securityTable(batchSterilizer
);
SterilizeInformationRoom sterilizeInformationRoom
= sterilizeInformationRoomRepository
.securityTable(batchSterilizer
);
int i
= 0;
for ( i
= 0; i
< listtList
.size(); i
++) {
LocalDateTime dateTime
= listtList
.get(i
).getEnterSterilizerRoom();
if (dateTime
==null
) {
sheet
.getCellRange("A"+(i
+3)+"").setText("");
}else {
DateTimeFormatter df
= DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss");
String localTime
= df
.format(dateTime
);
sheet
.getCellRange("A"+(i
+3)+"").setText(localTime
);
}
sheet
.getCellRange("B"+(i
+3)+"").setText(listtList
.get(i
).getArchivesChestNo());
if (sterilizeInformationRoom
!=null
) {
sheet
.getCellRange("C"+(i
+3)+"").setText(sterilizeInformationRoom
.getSterilizeBeginTime()+"");
sheet
.getCellRange("D"+(i
+3)+"").setText(sterilizeInformationRoom
.getSterilizeEndTime()+"");
sheet
.getCellRange("E"+(i
+3)+"").setText(sterilizeInformationRoom
.getConcentration());
sheet
.getCellRange("F"+(i
+3)+"").setText(sterilizeInformationRoom
.getOzenBenginTime()+"");
sheet
.getCellRange("G"+(i
+3)+"").setText(sterilizeInformationRoom
.getOzenEndTime()+"");
sheet
.getCellRange("H"+(i
+3)+"").setText(sterilizeInformationRoom
.getAfterOzen());
sheet
.getCellRange("I"+(i
+3)+"").setText(sterilizeInformationRoom
.getOperator());
sheet
.getCellRange("J"+(i
+3)+"").setText(sterilizeInformationRoom
.getPrincipal());
}
}
i
= i
+2;
sheet
.getCellRange("A2:J"+i
).getCellStyle().setHorizontalAlignment(HorizontalAlignType
.Center
);
sheet
.getCellRange("A2:J"+i
).getCellStyle().setWrapText(true);
CellRange cr
= sheet
.getCellRange(sheet
.getFirstRow(), sheet
.getFirstColumn(), sheet
.getLastRow(), sheet
.getLastColumn());
cr
.getBorders().setLineStyle(LineStyleType
.Thin
);
cr
.getBorders().getByBordersLineType(BordersLineType
.DiagonalDown
).setLineStyle(LineStyleType
.None
);
cr
.getBorders().getByBordersLineType(BordersLineType
.DiagonalUp
).setLineStyle(LineStyleType
.None
);
cr
.getBorders().setColor(Color
.BLACK
);
String fileName
= "消毒安全操作表("+batchSterilizer
+").pdf";
workbook
.saveToFile(fileName
,FileFormat
.PDF
);
InputStream in
= new FileInputStream(fileName
);
byte[] buff
=new byte[1024];
int n
;
response
.reset();
response
.setContentType("application/octet-stream");
response
.setHeader("Content-disposition", "attachment;filename=" +java
.net
.URLEncoder
.encode(fileName
, "UTF-8"));
response
.flushBuffer();
OutputStream ouputStream
= new BufferedOutputStream(response
.getOutputStream());
while((n
=in
.read(buff
))!=-1){
ouputStream
.write(buff
,0,n
);
}
ouputStream
.flush();
ouputStream
.close();
in
.close();
deleteFile(fileName
);
}
public static boolean deleteFile(String pathname
){
boolean result
= false;
File file
= new File(pathname
);
System
.out
.println(file
.getAbsolutePath());
if (file
.exists()) {
file
.delete();
result
= true;
System
.out
.println("文件已经被成功删除");
}
return result
;
}
3.效果图