Клетка Формулы не оценивается до тех пор, пока формула не будет сфокусирована и подтверждена в Excel (XLSX)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Клетка Формулы не оценивается до тех пор, пока формула не будет сфокусирована и подтверждена в Excel (XLSX)

Сообщение Anonymous »

Таким образом, я использую 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»