Java Apache POI – XSSFCell setFillBackgroundColor无效
我已经看遍了堆栈溢出,似乎无法让我的Java代码来填充XSSF Excel单元格的背景颜色。 从别人的话说,这应该使左上angular的单元格变成黄色:
// 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(); }
…但它不。 有人能让我知道我在做什么错吗? 顺便说一句,我使用Apache POI版本3.16。
谢谢!
CellStyle
三个属性决定一个单元格的填充方式:
- FillPattern
- FillForegroundColor
- FillBackgroundColor
大多数填充模式(如FillPatternType.BIG_SPOTS
使用这两种颜色。 名字FillForegroundColor是误导,但可以理解的。 这是仍在单元格背景中的填充图案的前景颜色。
要用一种颜色填充单元格,您需要使用使用前景颜色的FillPatternType.SOLID_FOREGROUND
。 所以你需要改变你的代码,如下所示:
// stylize style.setFillForegroundColor(color); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); cell.setCellStyle(style);