Как получить фоновый цвет ячейки в XSSF - PullRequest
0 голосов
/ 04 апреля 2019

Я использую apache poi 3.9 в моем проекте, мне нужно получить цвет фона ячейки файла XSSF.

Workbook myWorkBook = WorkbookFactory.create(new File(filePath));
Sheet mySheet = myWorkBook.getSheetAt(0);
Row currentRow = null;
Iterator<Row> rowIterator = mySheet.iterator();
while (rowIterator.hasNext())
{
currentRow = (Row) rowIterator.next();
totalColumns = currentRow.getPhysicalNumberOfCells();

for (int column = 0; column < totalColumns; column++)
{
Cell cell = currentRow.getCell(column);
CellStyle cellStyle = cell.getCellStyle();
short colorIdx=cellStyle.getFillForegroundColor();
// I am struct in this step  to get XSSF  cell background color

}
}

1 Ответ

1 голос
/ 04 апреля 2019

В двоичном формате BIFF (*.xls) (HSSF в apache poi) цвета могут быть индексированными цветами только из цветовой палитры.

Но в формате Office Open XML (*.xlsx) (XSSF в apache poi) цвета также можно задавать в форме RGB. Так что в XSSF не все цвета будут проиндексированы. Вот почему CellStyle.getFillForegroundColor возвращает 0, если цвет переднего плана заливки (цвет шаблона заливки) не является индексированным цветом.

Использовать CellStyle.getFillForegroundColorColor in XSSF. Это возвращает Color , который является XSSFColor in XSSF.

...