如何在java中改变现有excel(xlsx或xls)的单元格的颜色

我有要求,我必须读取和validationExcel文件,并插入到数据库,最初我正在读取文件,并将其插入数据库,如果数据库中已经存在的数据,我正在返回重复的行号和列号从数据库中,我需要根据行号和列号来更改这些单元格的颜色。

任何人都可以帮我解决这个问题。 或者可以build议任何想法如何读取/写入和validationexcel文件,(validation的意义上,我需要比较excel文件中的数据与数据库中的数据)。

目前我使用的是Apache poi

这个答案是.xls; 尽pipexlsx的API非常相似。 读取Excel文件很简单,打开文件的FileInputstream,然后创build一个HSSFWorkbook

HSSFWorkbook workbook = new HSSFWorkbook(inputStream); 

要改变一些单元格的颜色,首先必须用这种颜色创build一个Style(改变单元格的样式也会改变其他一些属性,比如字体等),所以在这里可能会有些混乱,但是这就是excel作品)

 colorStyle = workbook.createCellStyle(); colorStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); colorStyle.setFillForegroundColor(HSSFColor.RED.index); 

现在,您必须遍历所有工作簿中的行,确定重复项,然后更改这些单元格的样式:

 cell.setCellStyle(colorStyle); 

最后,通过FileOutputStream将工作簿写入新文件

 workbook.write(outputStream);