JavaApachePOI-XSSFcellSetFillBackgroundColor没有效果

JavaApachePOI-XSSFcellSetFillBackgroundColor没有效果,java,excel,apache-poi,background-color,xssf,Java,Excel,Apache Poi,Background Color,Xssf,我查看了所有堆栈溢出,似乎无法让java代码填充XSSF excel单元格的背景色。根据其他人的说法,这将使左上角的单元格变为黄色: // Example Code try { // prepare FileInputStream resource = new FileInputStream( FILEPATH + FILENAME ); XSSFWorkbook workbook = new XSSFWorkbook( resource ); XSSFShee

我查看了所有堆栈溢出,似乎无法让java代码填充XSSF excel单元格的背景色。根据其他人的说法,这将使左上角的单元格变为黄色:

// Example Code
try {

    // prepare
    FileInputStream resource = new FileInputStream( FILEPATH + FILENAME );
    XSSFWorkbook workbook = new XSSFWorkbook( resource );
    XSSFSheet sheet = workbook.createSheet( "Example Sheet" );

    // create
    XSSFRow row = sheet.createRow( 0 );
    XSSFCell cell = row.createCell( 0 );
    XSSFCellStyle style = workbook.createCellStyle();
    XSSFColor color = new XSSFColor( Color.YELLOW );

    // stylize
    style.setFillBackgroundColor( color );
    cell.setCellStyle( style );

    // finalize
    FileOutputStream output = new FileOutputStream( "Example Workbook.xlsx" );
    workbook.write( output );
    workbook.close();

} catch ( Exception e ) {

    // error
    e.printStackTrace();

}
……但事实并非如此。有人能告诉我我做错了什么吗?顺便说一下,我正在使用ApachePOI版本3.16


谢谢

CellStyle的三个属性决定了单元格的填充方式:

  • 填充图案
  • 填充前底色
  • 填充背景色
大多数填充图案都像
FillPatternType。大斑点使用两种颜色。名称FillForegroundColor具有误导性,但可以理解。它是填充图案的前景色,仍在单元格的背景中

要用一种颜色填充单元格,您需要使用
FillPatternType.SOLID\u FOREGROUND
,它使用FOREGROUND颜色。因此,您需要按如下方式更改代码:

// stylize
style.setFillForegroundColor(color);
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(style);

关闭您的
输出
除关于关闭输出流的附加PostScript(自
工作簿.Close()以来)之外的所有true
已经在这样做了。谢谢,我不知道,我删除了postscriptum。