#Java--使用POI HSSFWorkbook操作Excel

获取工作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.createCellStyle();

一、设置背景色:
setBorder.setFillForegroundColor((short) 13);// 设置背景色
setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

二、设置边框:
setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

三、设置居中:
setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中

四、设置字体:
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 16);//设置字体大小
HSSFFont font2 = wb.createFont();
font2.setFontName("仿宋_GB2312");
font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font2.setFontHeightInPoints((short) 12);
setBorder.setFont(font);//选择需要用到的字体格式

五、设置列宽:
sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值

六、设置自动换行:
setBorder.setWrapText(true);//设置自动换行

七、合并单元格:
Region region1 = new Region(0, (short) 0, 0, (short) 6);
//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
sheet.addMergedRegion(region1);

八、加边框
HSSFCellStyle cellStyle= wookBook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); cellStyle.setBorderBottom(HSSFCellStyle.BorderBORDER_MEDIUM);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setTopBorderColor(HSSFColor.BLACK.index);

九、创建表头单元格格式
HSSFCellStyle headStyle = wb.createCellStyle();
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 16);//设置字体大小
headStyle.setFont(font);
headStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
headStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
headStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
headStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

十、创建Excel数据单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
			
十一、单元格数字格式
HSSFDataFormat df = wb.createDataFormat();
HSSFCellStyle dfCellStyle = wb.createCellStyle();
dfCellStyle.setDataFormat(df.getFormat("#,#0.00"));// 保留两位小数
dfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
dfCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
dfCellStyle.setWrapText(true);
dfCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框
dfCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框
dfCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框
dfCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框

十二、设置表格数据内容的水平居中和垂直居中
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
			
十三、设置大标题(需要合并第一行)
sheet.addMergedRegion(new org.apache.poi.ss.util.CellRangeAddress(0, 0, 0, 8));// 起始行,结束行,起始列,终止列
HSSFRow row0 = sheet.createRow(0);
row0.setHeight((short) 600);
HSSFCell cell00 = row0.createCell(0);
cell00.setCellStyle(headStyle);
cell00.setCellValue("xxx");

你可能感兴趣的:(Java)