Man*_*nvi 3 java apache excel xlsx apache-poi
我正在尝试使用 Apache POI 获取.xlsx文件中的单元格颜色信息。
方法cellStyle.getFillBackgroundColor()
返回很短。如何将短格式转换为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();
});
Run Code Online (Sandbox Code Playgroud)
我使用的是 3.6 版本,我认为它不支持 getFillBackgroundColorColor()
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
对于 .xlsx 电子表格,您可以调用(2“Color”字)方法getFillBackgroundColorColor
。它返回一个org.apache.poi.ss.usermodel.Color
(不是一个非常有用的接口),它XSSFColor
实现了。然后你可以将其投射为XSSFColor
.
XSSFColor = (XSSFColor) cellStyle.getFillBackgroundColorColor();
Run Code Online (Sandbox Code Playgroud)
或者,再次使用 .xlxs 电子表格,您可以将 转换CellStyle
为XSSFCellStyle
,并且XSSFCellStyle
的getFillBackgroundColorColor
方法直接返回XSSFColor
。它也有getFillBackgroundXSSFColor
做同样的事情。
获取背景填充颜色。
注意 - 许多单元格实际上填充的是前景填充,而不是背景填充 - 请参阅
getFillForegroundColor()
请注意,纯色填充是作为前景色实现的,因此前景色可能是您真正想要的颜色。前景色有互补的方法,例如getFillForegroundColorColor
.
归档时间: |
|
查看次数: |
3183 次 |
最近记录: |