我正在使用此示例来更改文件中特定单元格的颜色
InputStream inp = new FileInputStream("C:\\temp\\vineet.xlsx");
//InputStream inp = new FileInputStream("workbook.xlsx");
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
XSSFCellStyle style = (XSSFCellStyle) wb.createCellStyle();
XSSFCellStyle defaultStyle = (XSSFCellStyle) wb.getCellStyleAt((short) 0);
style.setFillBackgroundColor(IndexedColors.YELLOW.getIndex());
//style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
Row row = sheet.getRow(2);
Cell cell = row.getCell(3);
if (cell == null)
cell = row.createCell(3);
cell.setCellType(CellType.STRING);
cell.setCellValue("a test");
if (cell.getCellStyle().equals(defaultStyle)) {
cell.setCellStyle(style);
}
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("C:\\temp\\vineet.xlsx");
wb.write(fileOut);
fileOut.close();
乍一看没有变化,但是当我尝试使用excel编辑单元格值时,单元格变为黄色背景。
答案 0 :(得分:0)
你已经得到了所需的一条线来做你需要的但是你评论了它。
//style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
并改变这一点:
style.setFillBackgroundColor(IndexedColors.YELLOW.getIndex());
到
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());