Я использую POI Apache для чтения данных в электронной таблице номеров деталей. Я просматриваю номер детали в нашей базе данных, если у нас есть чертеж САПР части, в которой я окрашиваю номер ячейки ячейки зеленым цветом, если мы не будем ее окрашивать в красный цвет. После завершения обработки электронная таблица сохраняется. Проблема, с которой я сталкиваюсь, заключается в том, что каждая ячейка в этой колонке выходит зеленым цветом. Я прошел через код, логика для поиска номера детали работает нормально, и логика определения того, какой цвет должна быть ячейка, и установка цвета и заполнения, похоже, тоже работает. Любые идеи, что я делаю неправильно здесь?
Спасибо.
//Check the parts
for(int r=1;r<sheet.getPhysicalNumberOfRows();r++) {
String partNumber = null;
switch(cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:
long pNum = (long) cell.getNumericCellValue();
partNumber = String.valueOf(pNum);
break;
case HSSFCell.CELL_TYPE_STRING:
partNumber = cell.getStringCellValue();
break;
default:
logger.info("Part Number at row " + r + " on sheet " + partList.getSheetName(s) + "is of an unsupported type");
}
try {
List<String> oldMaterialNumbers = getOldMaterialNumbers(partNumber);
boolean gotDrawing = checkPartNumber(oldMaterialNumbers, partNumber);
//If there a drawing then color the row green, if not red.
short bgColorIndex = gotDrawing
?HSSFColor.LIGHT_GREEN.index //42
:HSSFColor.RED.index; //10
HSSFCell curCell = row.getCell(partNumberColumn);
HSSFCellStyle curStyle = curCell.getCellStyle();
curStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
curStyle.setFillForegroundColor(bgColorIndex);
curCell.setCellStyle(curStyle);
}catch(Exception e) {
throw e;
}
}