废话不多说,直接上代码,上效果图
@RestController
@Api(tags = “报表”)
@RequestMapping("/export")
@CrossOrigin
public class exportContriller {
//图片上传地址
@Value("${queryurl}")
private String queryurl;
private int indexExport = 0;
private int indexExportCell = 0;
private Map<String, Object> mapWork;
//图片上传地址文件夹
private static final String pathUr=null;
private List<Map<String, Object>> listMap;
@ApiOperation("查询文件详情套用模板,返回base64字符")
@GetMapping("/officeModel")
@ApiImplicitParams({
})
public void officeModel(HttpServletResponse response, String workId) {
try {
//查询隐蔽工程信息
mapWork = ContUtil.getHiddenWorkById(workId, queryurl);
//查询该隐蔽工程下面的图片信息
listMap = ContUtil.getPictureByWorkId(workId, queryurl);
//查询项目、合同
Map<String, Object> mapProj = new HashMap<>();
if (mapWork.get("contId").toString() != null && !StringUtil.isEmpty(mapWork.get("contId").toString())) {
mapProj = ContUtil.getContrctNameBytId(mapWork.get("contId").toString(), queryurl);
} else {
return;
}
// 解析成excel结构体
XSSFWorkbook workbook = new XSSFWorkbook();
//生成一个表格,设置表格名称
XSSFSheet sheet = workbook.createSheet("隐蔽工程及工序流程影像");
//设置表格列宽度
sheet.setDefaultColumnWidth(100);
// 字体样式
XSSFFont xssfFont = workbook.createFont();
// 加粗
xssfFont.setBold(true);
// 字体名称
xssfFont.setFontName("楷体");
// 字体大小
xssfFont.setFontHeight(12);
// 表头样式
XSSFCellStyle headStyle = workbook.createCellStyle();
// 设置字体css
headStyle.setFont(xssfFont);
// 竖向居中
headStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 横向居中
headStyle.setAlignment(HorizontalAlignment.CENTER);
// 边框
headStyle.setBorderBottom(BorderStyle.THIN);
headStyle.setBorderLeft(BorderStyle.THIN);
headStyle.setBorderRight(BorderStyle.THIN);
headStyle.setBorderTop(BorderStyle.THIN);
// 内容字体样式
XSSFFont contFont = workbook.createFont();
// 加粗
contFont.setBold(false);
// 字体名称
contFont.setFontName("楷体");
// 字体大小
contFont.setFontHeight(11);
// 内容样式
XSSFCellStyle contentStyle = workbook.createCellStyle();
// 设置字体css
contentStyle.setFont(contFont);
// 竖向居中
contentStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 横向居中
//contentStyle.setAlignment(HorizontalAlignment.CENTER);
// 边框
contentStyle.setBorderBottom(BorderStyle.THIN);
contentStyle.setBorderLeft(BorderStyle.THIN);
contentStyle.setBorderRight(BorderStyle.THIN);
contentStyle.setBorderTop(BorderStyle.THIN);
// 自动换行
contentStyle.setWrapText(true);
// 数字样式
XSSFCellStyle numStyle = workbook.createCellStyle();
// 设置字体css
numStyle.setFont(contFont);
// 竖向居中
numStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 横向居中