先上效果图
此为poi导出后的样式,我用的是apache的poi
实现代码
//excel文件名
String fileName = "局方动力巡检详情表" + System.currentTimeMillis() + ".xls";
//sheet名
String sheetName = "局方动力巡检页";
//先创建一个list集合放自己的sheel标题
List<String> listAgent = new ArrayList<String>();
if(bureauInfo.getBureauType().equals("1")){
listAgent.add("国大高低配巡检记录");
}else{
listAgent.add("江滨高低配巡检记录");
listAgent.add("江滨移动油机巡检记录");
}
listAgent.add("固定油机巡检记录");
listAgent.add("储油箱巡检记录");
//循环在每个sheel中放值以及样式
for(int i=0;i<listAgent.size();i++){
//遍历list中的工作表
HSSFSheet sheet = wb.createSheet(listAgent.get(i));
//前三个单元格合并(参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列号)
CellRangeAddress region1 = new CellRangeAddress(0,0,0,2);
sheet.addMergedRegion(region1);
//创建第一行
HSSFRow row1 = sheet.createRow(0);
//设置第一行的单元格
HSSFCell cell1 = row1.createCell(0);
HSSFCell cell2 = row1.createCell(1);
HSSFCell cell3 = row1.createCell(2);
cell1.setCellValue(listAgent.get(i));
/设置样式 ----
HSSFCellStyle cellStyle = wb.createCellStyle()
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
//设置列样式0代表下标,cellStye为上面创建的表格样式
sheet.setDefaultColumnStyle(0, cellStyle);
sheet.setDefaultColumnStyle(1, cellStyle);
sheet.setDefaultColumnStyle(2, cellStyle);
//设置列宽第一个参数为下标,第二个参数为长度
sheet.setColumnWidth(0,30*256);
sheet.setColumnWidth(1,60*256);
sheet.setColumnWidth(2,60*256);
//合并单元格
CellRangeAddress region2 = new CellRangeAddress(1,1,0,1);
sheet.addMergedRegion(region2);
//第二行
HSSFRow rowFirst = sheet.createRow(1);
// 获取第一行的第一个单元格
rowFirst.createCell(0).setCellValue("巡检人员:");
rowFirst.createCell(2).setCellValue(masaUsers.getfName());
//第三行
//合并单元格
CellRangeAddress region3 = new CellRangeAddress(2,2,0,1);
sheet.addMergedRegion(region3);
HSSFRow rowFirst1 = sheet.createRow(2);
rowFirst1.createCell(0).setCellValue("巡检时间:");
rowFirst1.createCell(2).setCellValue(bureauInspection.getInspectionTime());
//第四行
//合并单元格
CellRangeAddress region4 = new CellRangeAddress(3,3,0,1);
sheet.addMergedRegion(region4);
HSSFRow rowFirst3 = sheet.createRow(3);
rowFirst3.createCell(0).setCellValue("机房名称:");
rowFirst3.createCell(2).setCellValue(bureauInfo.getBureauName());
if("国大高低配巡检记录".equals(listAgent.get(i))){
CellRangeAddress region5 = new CellRangeAddress(4,16,0,0);
sheet.addMergedRegion(region5);
//第五行
HSSFRow rowFirst4 = sheet.createRow(4);
rowFirst4.createCell(0).setCellValue("高低配设备");
rowFirst4.createCell(1).setCellValue("温度( ℃):");
rowFirst4.createCell(2).setCellValue(bureauGdHighlows.getTemperature());
//代码后面的不贴了
}
}