import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import static org.apache.poi.ss.usermodel.BorderStyle.DOUBLE;
public class ExcelUtil {
private HSSFWorkbook workbook;
private HSSFSheet sheet;
public ExcelUtil(){
this.workbook = new HSSFWorkbook();
this.sheet = this.workbook.createSheet("sheet");
}
public void create(){
//HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = this.workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
style.setTopBorderColor(IndexedColors.BLACK.getIndex());
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
//setColumnWidth(short columnIndex, short width)
this.sheet.setColumnWidth(0, (short) (5.13*256)); // 4.42
this.sheet.setColumnWidth(1, (short) (5.72*256)); // 5
this.sheet.setColumnWidth(2, (short) (4.5*256)); // 3.79
this.sheet.setColumnWidth(3, (short) (6.13*256));
this.sheet.setColumnWidth(4, (short) (2.75*256));
this.sheet.setColumnWidth(5, (short) (6.25*256));
this.sheet.setColumnWidth(6, (short) (4.88*256));
this.sheet.setColumnWidth(7, (short) (9.38*256));
this.sheet.setColumnWidth(8, (short) (7.63*256));
this.sheet.setColumnWidth(9, (short) (5.63*256));
this.sheet.setColumnWidth(10, (short) (6.69*256));
this.sheet.setColumnWidth(11, (short) (3*256));
this.sheet.setColumnWidth(12, (short) (2.38*256));
this.sheet.setColumnWidth(13, (short) (12.59*256));
//HSSFSheet sheet = this.workbook.createSheet("sheet");
//第一行
HSSFRow row0 = this.sheet.createRow(0);
row0.setHeight((short) (30.75*20));
HSSFCell cell_0 = row0.createCell(0);
cell_0.setCellStyle(style);
cell_0.setCellValue("湖南湘桓工程检测有限公司");
//设置字体大小
setFontSize(cell_0,14,true,"黑体");
//合并单元格
this.sheet.addMergedRegion(cellRangeAddress(0, 0, 0, 13));
//第二行
HSSFRow row1 = this.sheet.createRow(1);
row1.setHeight((short) (27.75*20));
HSSFCell cell_1 = row1.createCell(0);
cell_1.setCellStyle(style);
cell_1.setCellValue("管材检验报告");
//设置字体大小
setFontSize(cell_1,18,true,"黑体");
//合并单元格
CellRangeAddress region_cell_1 = cellRangeAddress(1, 1, 0, 13);
this.sheet.addMergedRegion(region_cell_1);
/*RegionUtil.setBorderBottom(1, region_cell_1, this.sheet,this.workbook); // 下边框
RegionUtil.setBorderLeft(1, region_cell_1, this.sheet,this.workbook); // 左边框
RegionUtil.setBorderRight(1, region_cell_1, this.sheet,this.workbook); // 有边框
RegionUtil.setBorderTop(1, region_cell_1, this.sheet,this.workbook); // 上边框*/
//第三行
HSSFRow row2 = this.sheet.createRow(2);
row2.setHeight((short) (30*20));
HSSFCell cell_2_1 = row2.createCell(0);
cell_2_1.setCellStyle(style);
cell_2_1.setCellValue("工程编号");
//设置字体大小
setFontSize(cell_2_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_2_1 = cellRangeAddress(2, 2, 0, 1);
this.sheet.addMergedRegion(region_cell_2_1);
//设置边框
setBorder(region_cell_2_1);
HSSFCell cell_2_2 = row2.createCell(2);
cell_2_2.setCellStyle(style);
cell_2_2.setCellValue("S2021020");
//设置字体大小
setFontSize(cell_2_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_2_2 = cellRangeAddress(2, 2, 2, 4);
this.sheet.addMergedRegion(region_cell_2_2);
//设置边框
setBorder(region_cell_2_2);
HSSFCell cell_2_3 = row2.createCell(5);
cell_2_3.setCellStyle(style);
cell_2_3.setCellValue("委托单号");
//设置字体大小
setFontSize(cell_2_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_2_3 = cellRangeAddress(2, 2, 5, 6);
this.sheet.addMergedRegion(region_cell_2_3);
//设置边框
setBorder(region_cell_2_3);
HSSFCell cell_2_4 = row2.createCell(7);
cell_2_4.setCellStyle(style);
cell_2_4.setCellValue("S2021020-210607-3");
//设置字体大小
setFontSize(cell_2_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_2_4 = cellRangeAddress(2, 2, 7, 8);
this.sheet.addMergedRegion(region_cell_2_4);
//设置边框
setBorder(region_cell_2_4);
HSSFCell cell_2_5 = row2.createCell(9);
cell_2_5.setCellStyle(style);
cell_2_5.setCellValue("报告编号");
//设置字体大小
setFontSize(cell_2_5,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_2_5 = cellRangeAddress(2, 2, 9, 10);
this.sheet.addMergedRegion(region_cell_2_5);
//设置边框
setBorder(region_cell_2_5);
HSSFCell cell_2_6 = row2.createCell(11);
cell_2_6.setCellStyle(style);
cell_2_6.setCellValue("S2021020-Y1-12");
//设置字体大小
setFontSize(cell_2_6,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_2_6 = cellRangeAddress(2, 2, 11, 13);
this.sheet.addMergedRegion(region_cell_2_6);
//设置边框
setBorder(region_cell_2_6);
//第四行
HSSFRow row3 = this.sheet.createRow(3);
row3.setHeight((short) (30*20));
HSSFCell cell_3_1 = row3.createCell(0);
cell_3_1.setCellStyle(style);
cell_3_1.setCellValue("建设单位");
//设置字体大小
setFontSize(cell_3_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_3_1 = cellRangeAddress(3, 3, 0, 1);
this.sheet.addMergedRegion(region_cell_3_1);
//设置边框
setBorder(region_cell_3_1);
HSSFCell cell_3_2 = row3.createCell(2);
cell_3_2.setCellStyle(style);
cell_3_2.setCellValue("");
//设置字体大小
setFontSize(cell_3_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_3_2 = cellRangeAddress(3, 3, 2, 8);
this.sheet.addMergedRegion(region_cell_3_2);
//设置边框
setBorder(region_cell_3_2);
HSSFCell cell_3_3 = row3.createCell(9);
cell_3_3.setCellStyle(style);
cell_3_3.setCellValue("检测类别");
//设置字体大小
setFontSize(cell_3_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_3_3 = cellRangeAddress(3, 3, 9, 10);
this.sheet.addMergedRegion(region_cell_3_3);
//设置边框
setBorder(region_cell_3_3);
HSSFCell cell_3_4 = row3.createCell(11);
cell_3_4.setCellStyle(style);
cell_3_4.setCellValue("");
//设置字体大小
setFontSize(cell_3_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_3_4 = cellRangeAddress(3, 3, 11, 13);
this.sheet.addMergedRegion(region_cell_3_4);
//设置边框
setBorder(region_cell_3_4);
//第五行
HSSFRow row4 = this.sheet.createRow(4);
row4.setHeight((short) (30*20));
HSSFCell cell_4_1 = row4.createCell(0);
cell_4_1.setCellStyle(style);
cell_4_1.setCellValue("工程名称");
//设置字体大小
setFontSize(cell_4_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_4_1 = cellRangeAddress(4, 4, 0, 1);
this.sheet.addMergedRegion(region_cell_4_1);
//设置边框
setBorder(region_cell_4_1);
HSSFCell cell_4_2 = row4.createCell(2);
cell_4_2.setCellStyle(style);
cell_4_2.setCellValue("");
//设置字体大小
setFontSize(cell_4_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_4_2 = cellRangeAddress(4, 4, 2, 8);
this.sheet.addMergedRegion(region_cell_4_2);
//设置边框
setBorder(region_cell_4_2);
HSSFCell cell_4_3 = row4.createCell(9);
cell_4_3.setCellStyle(style);
cell_4_3.setCellValue("样品名称");
//设置字体大小
setFontSize(cell_4_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_4_3 = cellRangeAddress(4, 4, 9, 10);
this.sheet.addMergedRegion(region_cell_4_3);
//设置边框
setBorder(region_cell_4_3);
HSSFCell cell_4_4 = row4.createCell(11);
cell_4_4.setCellStyle(style);
cell_4_4.setCellValue("");
//设置字体大小
setFontSize(cell_4_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_4_4 = cellRangeAddress(4, 4, 11, 13);
this.sheet.addMergedRegion(region_cell_4_4);
//设置边框
setBorder(region_cell_4_4);
//第六行
HSSFRow row5 = this.sheet.createRow(5);
row5.setHeight((short) (30*20));
HSSFCell cell_5_1 = row5.createCell(0);
cell_5_1.setCellStyle(style);
cell_5_1.setCellValue("委托单位");
//设置字体大小
setFontSize(cell_5_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_5_1 = cellRangeAddress(5, 5, 0, 1);
this.sheet.addMergedRegion(region_cell_5_1);
//设置边框
setBorder(region_cell_5_1);
HSSFCell cell_5_2 = row5.createCell(2);
cell_5_2.setCellStyle(style);
cell_5_2.setCellValue("");
//设置字体大小
setFontSize(cell_5_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_5_2 = cellRangeAddress(5, 5, 2, 8);
this.sheet.addMergedRegion(region_cell_5_2);
//设置边框
setBorder(region_cell_5_2);
HSSFCell cell_5_3 = row5.createCell(9);
cell_5_3.setCellStyle(style);
cell_5_3.setCellValue("检测依据");
//设置字体大小
setFontSize(cell_5_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_5_3 = cellRangeAddress(5, 5, 9, 10);
this.sheet.addMergedRegion(region_cell_5_3);
//设置边框
setBorder(region_cell_5_3);
HSSFCell cell_5_4 = row5.createCell(11);
cell_5_4.setCellStyle(style);
cell_5_4.setCellValue("");
//设置字体大小
setFontSize(cell_5_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_5_4 = cellRangeAddress(5, 5, 11, 13);
this.sheet.addMergedRegion(region_cell_5_4);
//设置边框
setBorder(region_cell_5_4);
//第七行
HSSFRow row6 = this.sheet.createRow(6);
row6.setHeight((short) (30*20));
HSSFCell cell_6_1 = row6.createCell(0);
cell_6_1.setCellStyle(style);
cell_6_1.setCellValue("生产厂家");
//设置字体大小
setFontSize(cell_6_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_6_1 = cellRangeAddress(6, 6, 0, 1);
this.sheet.addMergedRegion(region_cell_6_1);
//设置边框
setBorder(region_cell_6_1);
HSSFCell cell_6_2 = row6.createCell(2);
cell_6_2.setCellStyle(style);
cell_6_2.setCellValue("");
//设置字体大小
setFontSize(cell_6_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_6_2 = cellRangeAddress(6, 6, 2, 8);
this.sheet.addMergedRegion(region_cell_6_2);
//设置边框
setBorder(region_cell_6_2);
HSSFCell cell_6_3 = row6.createCell(9);
cell_6_3.setCellStyle(style);
cell_6_3.setCellValue("样品编号");
//设置字体大小
setFontSize(cell_6_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_6_3 = cellRangeAddress(6, 6, 9, 10);
this.sheet.addMergedRegion(region_cell_6_3);
//设置边框
setBorder(region_cell_6_3);
HSSFCell cell_6_4 = row6.createCell(11);
cell_6_4.setCellStyle(style);
cell_6_4.setCellValue("");
//设置字体大小
setFontSize(cell_6_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_6_4 = cellRangeAddress(6, 6, 11, 13);
this.sheet.addMergedRegion(region_cell_6_4);
//设置边框
setBorder(region_cell_6_4);
//第八行
HSSFRow row7 = this.sheet.createRow(7);
row7.setHeight((short) (30*20));
HSSFCell cell_7_1 = row7.createCell(0);
cell_7_1.setCellStyle(style);
cell_7_1.setCellValue("样品规格");
//设置字体大小
setFontSize(cell_7_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_7_1 = cellRangeAddress(7, 7, 0, 1);
this.sheet.addMergedRegion(region_cell_7_1);
//设置边框
setBorder(region_cell_7_1);
HSSFCell cell_7_2 = row7.createCell(2);
cell_7_2.setCellStyle(style);
cell_7_2.setCellValue("");
//设置字体大小
setFontSize(cell_7_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_7_2 = cellRangeAddress(7, 7, 2, 8);
this.sheet.addMergedRegion(region_cell_7_2);
//设置边框
setBorder(region_cell_7_2);
HSSFCell cell_7_3 = row7.createCell(9);
cell_7_3.setCellStyle(style);
cell_7_3.setCellValue("工程部位");
//设置字体大小
setFontSize(cell_7_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_7_3 = cellRangeAddress(7, 7, 9, 10);
this.sheet.addMergedRegion(region_cell_7_3);
//设置边框
setBorder(region_cell_7_3);
HSSFCell cell_7_4 = row7.createCell(11);
cell_7_4.setCellStyle(style);
cell_7_4.setCellValue("");
//设置字体大小
setFontSize(cell_7_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_7_4 = cellRangeAddress(7, 7, 11, 13);
this.sheet.addMergedRegion(region_cell_7_4);
//设置边框
setBorder(region_cell_7_4);
//第九行
HSSFRow row8 = this.sheet.createRow(8);
row8.setHeight((short) (30*20));
HSSFCell cell_8_1 = row8.createCell(0);
cell_8_1.setCellStyle(style);
cell_8_1.setCellValue("代表数量");
//设置字体大小
setFontSize(cell_8_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_8_1 = cellRangeAddress(8, 8, 0, 1);
this.sheet.addMergedRegion(region_cell_8_1);
//设置边框
setBorder(region_cell_8_1);
HSSFCell cell_8_2 = row8.createCell(2);
cell_8_2.setCellStyle(style);
cell_8_2.setCellValue("1000m");
//设置字体大小
setFontSize(cell_8_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_8_2 = cellRangeAddress(8, 8, 2, 4);
this.sheet.addMergedRegion(region_cell_8_2);
//设置边框
setBorder(region_cell_8_2);
HSSFCell cell_8_3 = row8.createCell(5);
cell_8_3.setCellStyle(style);
cell_8_3.setCellValue("收样日期");
//设置字体大小
setFontSize(cell_8_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_8_3 = cellRangeAddress(8, 8, 5, 6);
this.sheet.addMergedRegion(region_cell_8_3);
//设置边框
setBorder(region_cell_8_3);
HSSFCell cell_8_4 = row8.createCell(7);
cell_8_4.setCellStyle(style);
cell_8_4.setCellValue("2021/6/7");
//设置字体大小
setFontSize(cell_8_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_8_4 = cellRangeAddress(8, 8, 7, 8);
this.sheet.addMergedRegion(region_cell_8_4);
//设置边框
setBorder(region_cell_8_3);
HSSFCell cell_8_5 = row8.createCell(9);
cell_8_5.setCellStyle(style);
cell_8_5.setCellValue("试验日期");
//设置字体大小
setFontSize(cell_8_5,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_8_5 = cellRangeAddress(8, 8, 9, 10);
this.sheet.addMergedRegion(region_cell_8_5);
//设置边框
setBorder(region_cell_8_5);
HSSFCell cell_8_6 = row8.createCell(11);
cell_8_6.setCellStyle(style);
cell_8_6.setCellValue("2021/6/7");
//设置字体大小
setFontSize(cell_8_6,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell_8_6 = cellRangeAddress(8, 8, 11, 13);
this.sheet.addMergedRegion(region_cell_8_6);
//设置边框
setBorder(region_cell_8_6);
//第十行
HSSFRow row9 = this.sheet.createRow(9);
row9.setHeight((short) (30*20));
HSSFCell cell_9 = row9.createCell(0);
cell_9.setCellStyle(style);
cell_9.setCellValue("试验结果");
//设置字体大小
setFontSize(cell_9,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_9 = cellRangeAddress(9, 9, 0, 13);
this.sheet.addMergedRegion(region_cell_9);
//设置边框
setBorder(region_cell_9);
//第十一行
HSSFRow row10 = this.sheet.createRow(10);
row10.setHeight((short) (30*20));
HSSFCell cell_10_1 = row10.createCell(0);
cell_10_1.setCellStyle(style);
cell_10_1.setCellValue("检测项目");
//设置字体大小
setFontSize(cell_10_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_10_1 = cellRangeAddress(10, 10, 0, 4);
this.sheet.addMergedRegion(region_cell_10_1);
//设置边框
setBorder(region_cell_10_1);
HSSFCell cell_10_2 = row10.createCell(5);
cell_10_2.setCellStyle(style);
cell_10_2.setCellValue("标准要求");
//设置字体大小
setFontSize(cell_10_2,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_10_2 = cellRangeAddress(10, 10, 5, 8);
this.sheet.addMergedRegion(region_cell_10_2);
//设置边框
setBorder(region_cell_10_2);
HSSFCell cell_10_3 = row10.createCell(9);
cell_10_3.setCellStyle(style);
cell_10_3.setCellValue("检测结果");
//设置字体大小
setFontSize(cell_10_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell_10_3 = cellRangeAddress(10, 10, 9, 12);
this.sheet.addMergedRegion(region_cell_10_3);
//设置边框
setBorder(region_cell_10_3);
HSSFCell cell_10_4 = row10.createCell(13);
//设置边框
style.setBorderBottom((short)1);
style.setBorderLeft((short)1);
style.setBorderRight((short)1);
style.setBorderTop((short)1);
cell_10_4.setCellStyle(style);
cell_10_4.setCellValue("单项评定");
//设置字体大小
setFontSize(cell_10_4,10,true,"黑体");
//检测结果有多少行
int start_number = 10;
int result_count = 5 ;
for (int i = 1 ; i <= result_count ; i++){
int rownum = start_number + i;
HSSFRow row = this.sheet.createRow(rownum);
row.setHeight((short) (30*20));
HSSFCell cell1 = row.createCell(0);
cell1.setCellStyle(style);
cell1.setCellValue("检测项目");
//设置字体大小
setFontSize(cell1,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell1 = cellRangeAddress(rownum, rownum, 0, 4);
this.sheet.addMergedRegion(region_cell1);
//设置边框
setBorder(region_cell1);
HSSFCell cell2 = row.createCell(5);
cell2.setCellStyle(style);
cell2.setCellValue("标准要求");
//设置字体大小
setFontSize(cell2,10,true,"黑体");
//合并单元格
CellRangeAddress region_cell2 = cellRangeAddress(rownum, rownum, 5, 8);
this.sheet.addMergedRegion(region_cell2);
//设置边框
setBorder(region_cell2);
HSSFCell cell3 = row.createCell(9);
cell3.setCellStyle(style);
cell3.setCellValue("检测结果");
//设置字体大小
setFontSize(cell3,10,false,"黑体");
//合并单元格
CellRangeAddress region_cell3 = cellRangeAddress(rownum, rownum, 9, 12);
this.sheet.addMergedRegion(region_cell3);
//设置边框
setBorder(region_cell3);
HSSFCell cell4 = row.createCell(13);
//设置边框
style.setBorderBottom((short)1);
style.setBorderLeft((short)1);
style.setBorderRight((short)1);
style.setBorderTop((short)1);
cell4.setCellStyle(style);
cell4.setCellValue("单项评定");
//设置字体大小
setFontSize(cell4,10,false,"黑体");
}
int restart_number = start_number + result_count; //重新开始的行数
System.out.println("restart_number="+restart_number);
//重置后--第一行
int rownum1 = restart_number+1;
HSSFRow arow1 = this.sheet.createRow(rownum1);
arow1.setHeight((short) (30*20));
HSSFCell acell = arow1.createCell(0);
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
acell.setCellStyle(style);
acell.setCellValue("结论:");
//设置字体大小
setFontSize(acell,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell = cellRangeAddress(rownum1, rownum1, 0, 13);
this.sheet.addMergedRegion(region_acell);
//设置边框
setBorder(region_acell);
//重置后--第二行
int rownum2 = restart_number+2;
HSSFRow arow2 = this.sheet.createRow(rownum2);
arow2.setHeight((short) (54*20));
HSSFCell acell2 = arow2.createCell(0);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
acell2.setCellStyle(style);
acell2.setCellValue("");
//设置字体大小
setFontSize(acell2,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell2 = cellRangeAddress(rownum2, rownum2, 0, 13);
this.sheet.addMergedRegion(region_acell2);
//设置边框
setBorder(region_acell2);
//重置后--第三行
int rownum3 = restart_number+3;
HSSFRow arow3 = this.sheet.createRow(rownum3);
arow3.setHeight((short) (30*20));
HSSFCell acell_3_1 = arow3.createCell(0);
acell_3_1.setCellStyle(style);
acell_3_1.setCellValue("批准");
//设置字体大小
setFontSize(acell_3_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_3_1 = cellRangeAddress(rownum3, rownum3, 0, 1);
this.sheet.addMergedRegion(region_acell_3_1);
//设置边框
setBorder(region_acell_3_1);
HSSFCell acell_3_2 = arow3.createCell(2);
acell_3_2.setCellStyle(style);
acell_3_2.setCellValue("");
//设置字体大小
setFontSize(acell_3_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_3_2 = cellRangeAddress(rownum3, rownum3, 2, 3);
this.sheet.addMergedRegion(region_acell_3_2);
//设置边框
setBorder(region_acell_3_2);
HSSFCell acell_3_3 = arow3.createCell(4);
acell_3_3.setCellStyle(style);
acell_3_3.setCellValue("审核");
//设置字体大小
setFontSize(acell_3_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_3_3 = cellRangeAddress(rownum3, rownum3, 4, 5);
this.sheet.addMergedRegion(region_acell_3_3);
//设置边框
setBorder(region_acell_3_3);
HSSFCell acell_3_4 = arow3.createCell(6);
acell_3_4.setCellStyle(style);
acell_3_4.setCellValue("");
//设置字体大小
setFontSize(acell_3_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_3_4 = cellRangeAddress(rownum3, rownum3, 6, 7);
this.sheet.addMergedRegion(region_acell_3_4);
//设置边框
setBorder(region_acell_3_4);
HSSFCell acell_3_5 = arow3.createCell(8);
acell_3_5.setCellStyle(style);
acell_3_5.setCellValue("检测");
//设置字体大小
setFontSize(acell_3_5,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_3_5 = cellRangeAddress(rownum3, rownum3, 8, 9);
this.sheet.addMergedRegion(region_acell_3_5);
//设置边框
setBorder(region_acell_3_5);
HSSFCell acell_3_6 = arow3.createCell(10);
acell_3_6.setCellStyle(style);
acell_3_6.setCellValue("");
//设置字体大小
setFontSize(acell_3_6,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_3_6 = cellRangeAddress(rownum3, rownum3, 10, 13);
this.sheet.addMergedRegion(region_acell_3_6);
//设置边框
setBorder(region_acell_3_6);
//重置后--第四行
int rownum4 = restart_number+4;
HSSFRow arow4 = this.sheet.createRow(rownum4);
arow4.setHeight((short) (30*20));
HSSFCell acell_4_1 = arow4.createCell(0);
acell_4_1.setCellStyle(style);
acell_4_1.setCellValue("报告日期");
//设置字体大小
setFontSize(acell_4_1,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_4_1 = cellRangeAddress(rownum4, rownum4, 0, 1);
this.sheet.addMergedRegion(region_acell_4_1);
//设置边框
setBorder(region_acell_4_1);
HSSFCell acell_4_2 = arow4.createCell(2);
acell_4_2.setCellStyle(style);
acell_4_2.setCellValue("");
//设置字体大小
setFontSize(acell_4_2,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_4_2 = cellRangeAddress(rownum4, rownum4, 2, 3);
this.sheet.addMergedRegion(region_acell_4_2);
//设置边框
setBorder(region_acell_4_2);
HSSFCell acell_4_3 = arow4.createCell(4);
acell_4_3.setCellStyle(style);
acell_4_3.setCellValue("送样人");
//设置字体大小
setFontSize(acell_4_3,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_4_3 = cellRangeAddress(rownum4, rownum4, 4, 5);
this.sheet.addMergedRegion(region_acell_4_3);
//设置边框
setBorder(region_acell_4_3);
HSSFCell acell_4_4 = arow4.createCell(6);
acell_4_4.setCellStyle(style);
acell_4_4.setCellValue("");
//设置字体大小
setFontSize(acell_4_4,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_4_4 = cellRangeAddress(rownum4, rownum4, 6, 7);
this.sheet.addMergedRegion(region_acell_4_4);
//设置边框
setBorder(region_acell_4_4);
HSSFCell acell_4_5 = arow4.createCell(8);
acell_4_5.setCellStyle(style);
acell_4_5.setCellValue("见证人单位及姓名");
//设置字体大小
setFontSize(acell_4_5,10,true,"黑体");
//合并单元格
CellRangeAddress region_acell_4_5 = cellRangeAddress(rownum4, rownum4, 8, 9);
this.sheet.addMergedRegion(region_acell_4_5);
//设置边框
setBorder(region_acell_4_5);
HSSFCell acell_4_6 = arow4.createCell(10);
acell_4_6.setCellStyle(style);
acell_4_6.setCellValue("");
//设置字体大小
setFontSize(acell_4_6,10,false,"黑体");
//合并单元格
CellRangeAddress region_acell_4_6 = cellRangeAddress(rownum4, rownum4, 10, 13);
this.sheet.addMergedRegion(region_acell_4_6);
//设置边框
setBorder(region_acell_4_6);
//重置后--第五行
int rownum5 = restart_number+5;
HSSFRow arow5 = this.sheet.createRow(rownum5);
arow5.setHeight((short) (20*20));
HSSFCell acell_5_1 = arow5.createCell(0);
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
//--重置设置边框
style.setBorderBottom((short)0);
style.setBorderLeft((short)0);
style.setBorderRight((short)0);
style.setBorderTop((short)0);
acell_5_1.setCellStyle(style);
acell_5_1.setCellValue("注:1.本报告检测数据手写、涂改无效;复制报告未加盖本单位公章无效;");
//设置字体大小
setFontSize(acell_5_1,10,true,"黑体");
//合并单元格
this.sheet.addMergedRegion(cellRangeAddress(rownum5, rownum5, 0, 10));
HSSFCell acell_5_2 = arow5.createCell(11);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
acell_5_2.setCellStyle(style);
acell_5_2.setCellValue("共1页,第1页");
//设置字体大小
setFontSize(acell_5_2,10,true,"黑体");
//合并单元格
this.sheet.addMergedRegion(cellRangeAddress(rownum5, rownum5, 11, 13));
//重置后--第六行
int rownum6 = restart_number+6;
HSSFRow arow6 = this.sheet.createRow(rownum6);
arow6.setHeight((short) (20*20));
HSSFCell acell_6_1 = arow6.createCell(0);
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
acell_6_1.setCellStyle(style);
acell_6_1.setCellValue(" 2.报告无“CMA章”和“报告专用章”无效;无检测、审核、批准人签字无效;");
//设置字体大小
setFontSize(acell_6_1,10,true,"黑体");
//合并单元格
this.sheet.addMergedRegion(cellRangeAddress(rownum6, rownum6, 0, 13));
//重置后--第七行
int rownum7 = restart_number+7;
HSSFRow arow7 = this.sheet.createRow(rownum7);
arow7.setHeight((short) (20*20));
HSSFCell acell_7_1 = arow7.createCell(0);
style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
acell_7_1.setCellStyle(style);
acell_7_1.setCellValue(" 3.对报告若有异议,应在报告发出后15个工作日内提出;");
//设置字体大小
setFontSize(acell_7_1,10,true,"黑体");
//合并单元格
this.sheet.addMergedRegion(cellRangeAddress(rownum7, rownum7, 0, 13));
File file = new File("D:\\JAVAWORK\\demo3\\demo.xlsx");
FileOutputStream fout = null;
try {
fout = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
this.workbook.write(fout);
} catch (IOException e) {
e.printStackTrace();
}
try {
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//设置字体和大小
protected HSSFFont createFont(int fontSize,boolean bold ,String fontName){
HSSFFont f0 = this.workbook.createFont();
f0.setFontHeightInPoints((short) fontSize);//字号
if(bold){
f0.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
}
f0.setFontName(fontName);
return f0;
}
//合并单元格
protected CellRangeAddress cellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol){
CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol);
return region;
}
/**
* 设置单元格字体大小
*/
private void setFontSize(Cell cell,int fontSize,boolean bold ,String fontName) {
Font font = this.workbook.createFont();
font.setFontName(fontName);
font.setFontHeightInPoints((short)fontSize);
if(bold){
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
}
//解决单元格样式覆盖的问题
CellStyle cStyle = this.workbook.createCellStyle();
cStyle.cloneStyleFrom(cell.getCellStyle());
cStyle.setWrapText(true);
cStyle.setFont(font);
cell.setCellStyle(cStyle);
}
private void setBorder(CellRangeAddress cellRangeAddress){
RegionUtil.setBorderBottom(1, cellRangeAddress, this.sheet,this.workbook); // 下边框
RegionUtil.setBorderLeft(1, cellRangeAddress, this.sheet,this.workbook); // 左边框
RegionUtil.setBorderRight(1, cellRangeAddress, this.sheet,this.workbook); // 有边框
RegionUtil.setBorderTop(1, cellRangeAddress, this.sheet,this.workbook); // 上边框
}
}