Я новичок в использовании Apache Пои. У меня возникли вопросы об использовании существующего файла xlsx в качестве шаблона, когда он имеет условное форматирование.
Файл шаблона открывается без ошибок. Я могу вводить данные в него вручную, и условное форматирование работает, выделяя столбцы и меняя шрифты для определенных c ячеек в электронной таблице.
Я использую Poi для добавления данных в файл.
Открываю шаблон, добавляю данные в соответствующие ячейки, сохраняю файл как новый.
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(xlsTemplate);
XSSFWorkbook workbook = XSSFWorkbookFactory.createWorkbook(inputStream);
var tmpSheet = workbook.getSheetAt(0);
int rowCount = tmpStartRow;
for(var tmpRow : tmpList) {
Row row = tmpSheet.getRow(rowCount++);
int columnCount = tmpStartCol;
var tmpMap = tmpRow.objectToMap();
int x = columnCount;
for(var entry : tmpMap.entrySet()) {
Cell cell = row.getCell(x);
var value = "";
if(entry.getValue() != null)
value = (String)entry.getValue();
try {
var dblVal = Double.valueOf(value);
cell.setCellValue(dblVal);
}catch(Exception e) {
cell.setCellValue(value);
}
x++;
}
}
var evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateAll();
workbook.setForceFormulaRecalculation(true);
inputStream.close();
try (FileOutputStream outputStream = new FileOutputStream(xlsFileName)) {
workbook.write(outputStream);
workbook.close();
outputStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Когда я открываю новый файл, Excel не выдает ошибок.
После при просмотре рабочего листа в ячейках есть данные в соответствующих полях, но форматирование из шаблона не было задано.
Когда я нажимаю «Управление правилами» в разделе условного форматирования, я вижу, что правила все еще остаются там.
Когда я нажимаю на ячейку в электронной таблице и щелкаю по строке формул, а затем щелкаю прочь, запускается условное форматирование.
Как заставить Poi обрабатывать условное форматирование для меня? Нужно ли мне изменять условное форматирование, даже если оно уже существует в шаблоне?
Заранее благодарим за помощь ..
SA