public void exportExcel(ManagerProjectBean bean,HttpServletResponse response, UserInfoBean userInfoBean){
bean.setIsStatistics(1);
String projectName = bean.getProjectName();
if(StringUtils.isNotEmpty(projectName)){
projectName = projectName.substring(0,projectName.length()-1);
bean.setProjectName(projectName);
}
//1.创建一个workbook,对应一个excel文件
HSSFWorkbook wb = new HSSFWorkbook();
//2.在workbook中添加一个sheet,对应Excel中的sheet
HSSFSheet sheet = wb.createSheet("年度新增工程统计");
for(int i = 0; i < 30; i++){
//设置每一列的列宽
sheet.setColumnWidth(i,256*16);
}
//3.设置样式以及字体样式
HSSFCellStyle titleStyle = ExcelUtils.createTitleCellStyle(wb);
HSSFCellStyle headerStyle = ExcelUtils.createHeadCellStyle(wb);
HSSFCellStyle contentStyle = ExcelUtils.createContentCellStyle(wb);
//行号
int rowNum = 0;
//第1行
HSSFRow row0 = sheet.createRow(rowNum++);
row0.setHeight((short)600);
String[] row_first = {"施工许可号","监督编号","工程名称","工程情况","","","","","","","","","","","","","","","","","形象进度","","","","","","","竣工验收日期","监督小组成员","备注"};
for (int i = 0; i < row_first.length; i++) {
HSSFCell tempCell1 = row0.createCell(i);
tempCell1.setCellValue(row_first[i]);
tempCell1.setCellStyle(headerStyle);
}
//第2行
HSSFRow row1 = sheet.createRow(rowNum++);
row1.setHeight((short)600);
String[] row_second = {"","","","建筑类别","建筑子类别","监督面积(㎡)","工程造价(万元)","地上层次","地下层次","高度","工程报监日期","实际开工日期","建设单位","施工单位","监理单位","设计单位",
"勘察单位","图审机构","检测机构","工程地址","桩基","深基坑","基础","主体","装饰","节能","幕墙","","",""};
for (int i = 0; i < row_second.length; i++) {
HSSFCell tempCell2 = row1.createCell(i);
tempCell2.setCellValue(row_second[i]);
tempCell2.setCellStyle(headerStyle);
}
// 合并单元格,参数依次为起始行,结束行,起始列,结束列 (索引0开始)
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));//
sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));//工程名称
sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 18));//工程情况
sheet.addMergedRegion(new CellRangeAddress(0, 0, 19, 25));//形象进度
sheet.addMergedRegion(new CellRangeAddress(0, 1, 26, 26));//竣工验收日期
sheet.addMergedRegion(new CellRangeAddress(0, 1, 27, 27));//监督小组成员
sheet.addMergedRegion(new CellRangeAddress(0, 1, 28, 28));//备注
List<ManagerProjectBean> managerProjectList = managerProjectService.findManagerProjectList(bean, userInfoBean);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(null != managerProjectList){
for(int i = 0; i < managerProjectList.size();i++){
HSSFRow tempRow = sheet.createRow(i+2);
tempRow.setHeight((short)600);
//循环单元格填入数据
for(int j=0;j<30;j++){
HSSFCell tempCell = tempRow.createCell(j);
tempCell.setCellStyle(contentStyle);
String cellValue = "";
if(j ==0){
cellValue = managerProjectList.get(i).getBuilderLicense();
}else if(j == 1){
cellValue = managerProjectList.get(i).getProjectCode();
}else if(j == 2){
cellValue = managerProjectList.get(i).getProjectName();
}else if(j ==3){
cellValue = StringUtils.isNotEmpty(managerProjectList.get(i).getBuildType()) ?
DictUtils.getDictValue(managerProjectList.get(i).getBuildType(), "build_type", "") : "";
}else if(j == 4){
cellValue = StringUtils.isNotEmpty(managerProjectList.get(i).getBuildChildType()) ?
DictUtils.getDictValue(managerProjectList.get(i).getBuildChildType(), "build_child_type", "") : "";
}else if(j ==5){
cellValue = null != managerProjectList.get(i).getAllArea() ? managerProjectList.get(i).getAllArea().toString() : "";
}else if(j == 6){
cellValue = null != managerProjectList.get(i).getProjectCost() ? managerProjectList.get(i).getProjectCost().toString() : "";
}else if(j == 7){
cellValue = managerProjectList.get(i).getFloorUp();
}else if(j ==8){
cellValue = managerProjectList.get(i).getFloorDown();
}else if(j == 9){
cellValue = StringUtils.isNotEmpty(managerProjectList.get(i).getBuildHeightStr()) ? managerProjectList.get(i).getBuildHeightStr() : "";
}else if(j == 10){
cellValue = null != managerProjectList.get(i).getReportDate() ? sdf.format(managerProjectList.get(i).getReportDate()) : "";
}else if(j == 11){
cellValue = null != managerProjectList.get(i).getBeginDate() ? sdf.format(managerProjectList.get(i).getBeginDate()) : "";
}else if(j == 12){
cellValue = managerProjectList.get(i).getJsUnit();
}else if( j == 13){
cellValue = managerProjectList.get(i).getSgUnit();
}else if(j == 14){
cellValue = managerProjectList.get(i).getJlUnit();
}else if(j ==15){
cellValue = managerProjectList.get(i).getSjUnit();
}else if(j == 16){
cellValue = managerProjectList.get(i).getKcUnit();
}else if(j == 17){
cellValue = managerProjectList.get(i).getTsUnit();
}else if(j == 18){
cellValue = managerProjectList.get(i).getJcUnit();
}else if(j == 19){
cellValue = managerProjectList.get(i).getAddress();
}else if(j == 20){
cellValue = managerProjectList.get(i).getZj();
}else if(j == 21){
cellValue = managerProjectList.get(i).getSjk();
}else if(j == 22){
cellValue = managerProjectList.get(i).getJc();
}else if(j == 23){
cellValue = managerProjectList.get(i).getZt();
}else if(j == 24){
cellValue = managerProjectList.get(i).getZs();
}else if(j == 25){
cellValue = managerProjectList.get(i).getJn();
}else if(j == 26){
cellValue = managerProjectList.get(i).getMq();
}else if(j == 27){
cellValue = null != managerProjectList.get(i).getEndDate() ? sdf.format(managerProjectList.get(i).getEndDate()) : "";
}else if(j == 28){
cellValue = managerProjectList.get(i).getMonitorZl();
}else if(j == 29){
cellValue = managerProjectList.get(i).getRemark();
}
tempCell.setCellValue(cellValue);
}
}
}
String fileName = "年度新增工程统计.xls";
try {
fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
response.setHeader("Content-disposition", "attachment;filename=\"" + fileName + "\"");
OutputStream stream = response.getOutputStream();
if(null != wb && null != stream){
wb.write(stream);
wb.close();
stream.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
java excel复杂表头导出
最新推荐文章于 2023-09-12 15:16:19 发布