Таким образом, я использую Apache Poi (POI-OOXML в последней стабильной версии выпуска 5.0.0) и открываю существующий файл Excel (XSLX) для редактирования (в основном это шаблонный файл для заполнения дополнительными данными). Я добавляю несколько новых рядов данных и снова экспортируйте Excel. Все работает нормально, пока я добавляю только обычные контентные ячейки.File excelFileToRead = new File();
InputStream inp = new FileInputStream(excelFileToRead);
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row dateRangeRow = sheet.getRow(0);
// fill first cell with some date
Cell cell = row.getCell(0);
if(cell == null) row.createCell(0)
Date someDate = new Date();
cell.setCellValue(someDate);
// add formula to second cell to display the week number
Cell formCell = row.getCell(1);
if(formCell == null) row.createCell(1);
cell.setCellFormula("WEEKNUM(A1)");
// evaluate all formula fields before saving
XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
//some routine to save as a file follows here, not exactly relevant here
< /code>
В целом это работает нормально. Первая ячейка создается и заполнена сегодняшней датой, вторая ячейка также создается как ячейка формулы. В Excel и снова убрать фокус, он правильно оценивает формулу, и ячейка показывает правильный номер недели. < /p>
У меня были некоторые проблемы с ранее с уже существующими формулами в Excel, который я прочитал, что они не были обновлены, когда я добавил данные в лист, но это может быть исправлено с помощью xssfformulaevaluator. По какой -то причине, это не влияет на мои созданные пользовательские ячейки формулы.FormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator();
formulaEvaluator.evaluateFormulaCell(formCell);
< /code>
Это не вызвало здесь никаких изменений. 5.0.0 был выпущен), в которой, по -видимому, обсуждалась та же самая проблема, но с более старой версией POI, а также, как указано выше, я следовал общей практике призывы к EvaluateAllformulacells (...) перед сохранением и даже названием EvaluateFormulacell (Cell) после каждой формулы Cells: Apache Poi Formulas не оценивает
Подробнее здесь: https://stackoverflow.com/questions/693 ... irmed-in-e
Клетка Формулы не оценивается до тех пор, пока формула не будет сфокусирована и подтверждена в Excel (XLSX) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение