我正在嘗試使用 Apache POI在.xlsx文件中獲取單元格顏色信息。方法cellStyle.getFillBackgroundColor()返回很短。如何將 short 轉換為java.awt.Color或任何其他格式(XSSFColor)。最終我想根據其背景顏色存儲單元格的值。 Workbook workbook = WorkbookFactory.create(new FileInputStream (new File(SAMPLE_XLSX_FILE_PATH))); Sheet sheet = workbook.getSheetAt(0); DataFormatter dataFormatter = new DataFormatter(); sheet.forEach(row -> { row.forEach(cell -> { String cellValue = dataFormatter.formatCellValue(cell); CellStyle cellStyle = cell.getCellStyle(); System.out.println(cellStyle.getFillBackgroundColor()); //Color userColor = cellStyle.getFillBackgroundColor(); //ERROR }); System.out.println(); });我使用的是 3.6 版,我認為它不支持 getFillBackgroundColorColor()<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.6</version></dependency>
1 回答
陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
隨著.XLSX電子表格,你可以調用的getFillBackgroundColorColor(2“色”字)方法。它返回一個org.apache.poi.ss.usermodel.Color(不是一個非常有用的接口),它XSSFColor實現了。然后您可以將其轉換為XSSFColor.
XSSFColor = (XSSFColor) cellStyle.getFillBackgroundColorColor();
或者,再次使用 .xlxs 電子表格,您可以將 轉換CellStyle為XSSFCellStyle,并且XSSFCellStyle的getFillBackgroundColorColor方法XSSFColor直接返回一個。它也有getFillBackgroundXSSFColorwhich 做同樣的事情。
獲取背景填充顏色。
注意 - 許多單元格實際上填充了前景填充,而不是背景填充 - 請參閱
getFillForegroundColor()
請注意,實心填充是作為前景色實現的,因此前景色可能是您真正想要的。前景色有互補的方法,例如getFillForegroundColorColor。
添加回答
舉報
0/150
提交
取消
