poi设置样式没有效果。

public void testMethod() throws Exception{
XSSFWorkbook xfOut = new XSSFWorkbook();
XSSFSheet sheet = xfOut.createSheet();

    XSSFRow row = sheet.createRow(0);
    XSSFCell cell = row.createCell(0);

    cell.setCellValue("test");
    cell.getCellStyle().setAlignment(XSSFCellStyle.ALIGN_CENTER);
    cell.getCellStyle().setVerticalAlignment(XSSFCellStyle.ALIGN_CENTER);       
    XSSFFont f  = xfOut.createFont();      
    f.setFontHeightInPoints((short) 30);//字号       
    f.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);//加粗     
    cell.getCellStyle().setFont(f);

    File file = new File("f:\\testPOI.xlsx");
    FileOutputStream fos = new FileOutputStream(file);

    xfOut.write(fos);
    fos.close();
    }

    内容是显示了,但是样式一点效果也没有,到底哪里出问题了,求教。

我使用4.1.2版本,遇到相似的问题,使用xssfWorkbook.createCellStyle();不要使用cell.getCellStyle(),下面的代码可以参考一下:

img

 @Test
    public void testMethod() throws Exception{
        XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
        XSSFSheet sheet = xssfWorkbook.createSheet();
        XSSFRow row = sheet.createRow(0);
        XSSFCell cell = row.createCell(0);
        cell.setCellValue("test");

        XSSFCellStyle cellStyle = xssfWorkbook.createCellStyle();
        cellStyle.setAlignment(HorizontalAlignment.CENTER);
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

        XSSFFont font  = xssfWorkbook.createFont();
        font.setFontHeightInPoints((short) 30);//字号
        font.setBold(true);//加粗
        cellStyle.setFont(font);

        cell.setCellStyle(cellStyle);

        FileOutputStream fos = new FileOutputStream("D:\\AppData\\tmp\\style.xlsx");
        xssfWorkbook.write(fos);
        xssfWorkbook.close();
    }