POI Excel导出样式设置

//单元格格式 

public static void copyCellStyle(CellStyle fromStyle, CellStyle toStyle) {  ​

        toStyle.setAlignment(fromStyle.getAlignment());  

        // 边框和边框颜色  

        toStyle.setBorderBottom(fromStyle.getBorderBottom());  

        toStyle.setBorderLeft(fromStyle.getBorderLeft());  

        toStyle.setBorderRight(fromStyle.getBorderRight());  

        toStyle.setBorderTop(fromStyle.getBorderTop());  

        toStyle.setTopBorderColor(fromStyle.getTopBorderColor());  

        toStyle.setBottomBorderColor(fromStyle.getBottomBorderColor());  

        toStyle.setRightBorderColor(fromStyle.getRightBorderColor());  

        toStyle.setLeftBorderColor(fromStyle.getLeftBorderColor());  

  

        // 背景和前景  

        toStyle.setFillBackgroundColor(fromStyle.getFillBackgroundColor());  

        toStyle.setFillForegroundColor(fromStyle.getFillForegroundColor());  

  

        // 数据格式  

        toStyle.setDataFormat(fromStyle.getDataFormat());  

        toStyle.setFillPattern(fromStyle.getFillPattern());  

        // toStyle.setFont(fromStyle.getFont(null));  

        toStyle.setHidden(fromStyle.getHidden());  

        toStyle.setIndention(fromStyle.getIndention());// 首行缩进  

        toStyle.setLocked(fromStyle.getLocked());  

        toStyle.setRotation(fromStyle.getRotation());// 旋转  

        toStyle.setVerticalAlignment(fromStyle.getVerticalAlignment());  

        toStyle.setWrapText(fromStyle.getWrapText());  

  

    }  

 

// 设定合并单元格区域范围 

         *  firstRow  0-based 

         *  lastRow   0-based 

         *  firstCol  0-based 

         *  lastCol   0-based 

       // 

        CellRangeAddress cra=new CellRangeAddress(0, 3, 3, 9);          

        //在sheet里增加合并单元格  

        sheet.addMergedRegion(cra);  

HSSFSheet.DefaultColumnWidth、

HSSFSheet.DefaultRowHeight和

HSSFSheet.DefaultRowHeightInPoints属性。

默认值


HSSFSheet sheet = workbook.createSheet("sheetName");    //创建sheet  

sheet.setVerticallyCenter(true);    

//下面样式可作为导出左右分栏的表格模板  

sheet.setColumnWidth((short) 0, (short) 2600);// 设置列宽  

sheet.setColumnWidth((short) 1, (short) 2400);  

sheet.setColumnWidth((short) 2, (short) 2300);  

sheet.setColumnWidth((short) 3, (short) 1600);  

sheet.setColumnWidth((short) 4, (short) 1800);  

sheet.setColumnWidth((short) 5, (short) 1000);// 空列设置小一些  

sheet.setColumnWidth((short) 6, (short) 2600);// 设置列宽  

sheet.setColumnWidth((short) 7, (short) 2400);  

sheet.setColumnWidth((short) 8, (short) 2300);  

sheet.setColumnWidth((short) 9, (short) 1600);  

sheet.setColumnWidth((short) 10, (short) 1800);  

  

HSSFCellStyle cellstyle = (HSSFCellStyle) workbook.createCellStyle();// 设置表头样式  

cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 设置居中    

HSSFCellStyle headerStyle = (HSSFCellStyle) workbook .createCellStyle();// 创建标题样式  

headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);    //设置垂直居中  

headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);   //设置水平居中  

HSSFFont headerFont = (HSSFFont) workbook.createFont(); //创建字体样式  

headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 字体加粗  

headerFont.setFontName("Times New Roman");  //设置字体类型  

headerFont.setFontHeightInPoints((short) 8);    //设置字体大小  

headerStyle.setFont(headerFont);    //为标题样式设置字体样式  

  

HSSFCellStyle headerStyle1 = (HSSFCellStyle) workbook .createCellStyle();// 创建标题样式1  

headerStyle1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  

headerStyle1.setAlignment(HSSFCellStyle.ALIGN_CENTER);  

HSSFFont headerFont1 = (HSSFFont) workbook.createFont();  

headerFont1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 字体加粗  

headerFont1.setFontName("Times New Roman");  

headerFont1.setFontHeightInPoints((short) 8);  

headerStyle1.setFont(headerFont1);  

  

HSSFCellStyle headerStyle2 = (HSSFCellStyle) workbook .createCellStyle();// 创建标题样式2  

headerStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);  

headerStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);  

HSSFFont headerFont2 = (HSSFFont) workbook.createFont();  

headerFont2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 字体加粗  

headerFont2.setFontName("Times New Roman");  

headerFont2.setFontHeightInPoints((short) 8);  

headerStyle2.setFont(headerFont2);  

headerStyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框  

headerStyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框  

headerStyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框  

headerStyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框  

  

HSSFCellStyle cell_Style = (HSSFCellStyle) workbook .createCellStyle();// 设置字体样式  

cell_Style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  

cell_Style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直对齐居中  

cell_Style.setWrapText(true); // 设置为自动换行  

HSSFFont cell_Font = (HSSFFont) workbook.createFont();  

cell_Font.setFontName("宋体");  

cell_Font.setFontHeightInPoints((short) 8);  

cell_Style.setFont(cell_Font);  

cell_Style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框  

cell_Style.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框  

cell_Style.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框  

cell_Style.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框  

  

HSSFRow row = sheet.createRow((short)1);    //创建行  

HSSFCell cell = row.createCell((short)1);   //创建列  

cell.setCellStyle(headerStyle2);    //单元格引用样式  


原文地址:https://www.cnblogs.com/luckForever/p/7254188.html