java如何更改特定单元格ApachePOI3.9的字体颜色
我可以用ApachePOI中的以下代码更改前景色。现在我想改变单个单元格的字体颜色
CellStyle style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREEN.getIndex());
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
cell = rowxl.createCell((short) 7);
cell.setCellValue(" <<<<ONTRACK>>>>");
cell.setCellStyle(style);
rowxl.createCell(0).setCellValue(TEAM);
我已经试过了,但它并没有改变前两列的颜色
代码:
public class fclr {
public static void main(String[] args) throws Exception {
InputStream inp = new FileInputStream("c:/workbook1.xls");
Workbook wb = WorkbookFactory.create(inp);
CreationHelper createHelper = wb.getCreationHelper();
Sheet sheet = wb.getSheetAt(0);
Row rowxl = sheet.createRow((short)0);
Cell cell = rowxl.createCell(0);
//apply some colors from the standard palette,
// as in the previous examples.
//we'll use red text on a lime background
CellStyle style = wb.createCellStyle();
rowxl.createCell(1).setCellValue("ABC");
rowxl.createCell(2).setCellValue("aaa");
Font font = wb.createFont();
font.setColor(HSSFColor.BLACK.index);
style.setFont(font);
cell.setCellStyle(style);
FileOutputStream fileOut = new FileOutputStream("c:/workbook1.xls");
wb.write(fileOut);
fileOut.close();
}
}
# 1 楼答案
你目前正在两次创建你的一些细胞,这就是为什么它都出了问题
首先,我建议您将单元格样式的创建移到更靠近代码顶部的位置。记住——单元格样式的范围是工作簿,所以不要为每个单元格创建一个样式
现在,根据您的偏好,您可以这样创建单元格:
或者像这样:
只是不要做你现在拥有的那种奇怪的混合体,因为你最终会创建两次细胞,并错过造型