Java Apache POI - XSSFCell setFillBackgroundColor没有影响
问题描述:
我已经看过遍布堆栈溢出,并且似乎无法让我的java代码填充XSSF excel单元格的背景颜色。从别人所说的话,这应该使左上角的单元格变成黄色:Java Apache POI - XSSFCell setFillBackgroundColor没有影响
// 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);
闭上你的''输出所有 –