这里excel转pdf实现的思想是:
先用poi生成workbook 然后转为pdf格式文件
controller:
CommenConstant.FILE_TYPE fileTypeEnum = CommenConstant.FILE_TYPE.getFileTypeEnum(fileType);
if (null == fileTypeEnum) {
return failure("文件类型不符合规范(pdf、excel)");
}
XSSFWorkbook backBook;
//数据库查出故障数据
List<FaultRegisterVO> faultRegisterVOS = statisticsService.selectFaultRegisterMsg(date,timeType);
//将数据生成workbook
backBook = statisticsService.generateFaultRegisterMsgExcel(faultRegisterVOS,date,timeType);
OutputStream osOut = response.getOutputStream();
switch (fileTypeEnum) {
case EXCLE:
response.setHeader("Content-disposition", "attachment;filename="+ "故障排名报表" +".xlsx");
response.setContentType("application/vnd.ms-excel;charset=utf-8");
backBook.write(osOut);
osOut.close();
osOut.flush();
break;
case PDF:
ExcelConvertPdf.excelConvertPdf(backBook,osOut,response);
osOut.close();
osOut.flush();
break;
default:
return null;
}
枚举工具类:
public enum FILE_TYPE{
/**
* 统计报表形式
*/
PDF("pdf"),
EXCLE("excle");
String desc;
FILE_TYPE(String desc){
this.desc = desc;
}
public static FILE_TYPE getFileTypeEnum(String desc){
for(FILE_TYPE fileType:FILE_TYPE.values()){
if(fileType.desc.equals(desc)){
return fileType;
}
}
return null;
}
}
excel转pdf工具类
import cn.hutool.core.date.DateTime;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf