如何使用Apache POI为Excel标题单元着色?

时间:2018-02-27 19:27:25

标签: java apache-poi

我正在使用Apache POI创建一个excel文件。我使用简写符号来创建单元格,我想知道是否有一种方法可以使用相同的编码模式填充单元格上的颜色。

编码标准1。

Row headerRow = sheet.createRow(0);
 headerRow.createCell(0).setCellValue(NYPG3Constants.FIRST_NAME);
 headerRow.createCell(1).setCellValue(NYPG3Constants.LAST_NAME);
 headerRow.createCell(2).setCellValue(NYPG3Constants.POLICY_NUMBER);
 headerRow.createCell(3).setCellValue(NYPG3Constants.ZIP_CODE);
 headerRow.createCell(4).setCellValue(NYPG3Constants.DATE_OF_BIRTH);

我可以使用以下编码模式设置样式,但是对于每个单元标题,我需要创建一个单独的单元格对象。

编码标准2

CellStyle style = workBook.createCellStyle();
 style.setFillForegroundColor(HSSFColor.GOLD.index);
 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

 Cell cell = headerRow.createCell(0);
 cell.setCellValue(NYPG3Constants.FIRST_NAME);
 cell.setCellStyle(style);

有没有办法使用我的第一个编码标准填充标题单元格的颜色?

提前致谢

1 个答案:

答案 0 :(得分:2)

简单的for循环怎么样?

CellStyle style = workBook.createCellStyle();
 style.setFillForegroundColor(HSSFColor.GOLD.index);
 style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

...

Row headerRow = sheet.createRow(0);
 headerRow.createCell(0).setCellValue(NYPG3Constants.FIRST_NAME);
 headerRow.createCell(1).setCellValue(NYPG3Constants.LAST_NAME);
 headerRow.createCell(2).setCellValue(NYPG3Constants.POLICY_NUMBER);
 headerRow.createCell(3).setCellValue(NYPG3Constants.ZIP_CODE);
 headerRow.createCell(4).setCellValue(NYPG3Constants.DATE_OF_BIRTH);

for (int c = 0; c < 5; c++) {
 headerRow.getCell(c).setCellStyle(style);
}