2012-06-14 2 views
0

Используя метод cell.setCellFormula (null), мы можем удалить формулу, но она влияет на ячейки, которые имеют значения, зависящие от этой ячейки. Я хочу удалить все формулы со всего листа без изменения значений любой ячейки. Пожалуйста, предложите мне идею ...Как удалить формулу из листа Excel с помощью POI api?

+0

Возможный дубликат [как удалить все формулы из листа excel с помощью java POI api?] (Http://stackoverflow.com/questions/10991820/how-to-remove-all-formulas-from-an-excel -sheet-на-Java-пои-API) –

ответ

1

Ваш вопрос немного неоднозначным, но я собираюсь сделать предположение на то, что вы после этого и ответить на то, что я думаю, что вы имели в виду ...

Предполагая, первенствует файл, который выглядит примерно так:

| |  A  |  B | C | 
| 1 |  2  |  4 | 6 | 
| 2 | =SUM(A1:C1) | =A2*3 | =A2*4 | 

Я считаю, что вы после этого, чтобы удалить формулу из А2, но оставить в расчетном значении в настоящее время (12), так что формулы B2 и C2 остаются неизменными?

Существует два способа сделать это. Если вы только что загрузили файл и не внесли никаких изменений, то это очень просто. Все, что вам нужно сделать, это изменить тип ячейки как ячейку Формулы на числовую ячейку. Он сохранит старое рассчитанное значение.

sheet.getRow(1).getCell(0).setCellType(Cell.CELL_TYPE_NUMERIC); 

Если вы сделали другие изменения в файл aready, то, что вам нужно сделать, это оценить ячейку, а затем заменить содержимое с оцененным значением. Вы можете сделать это с помощью анализатора формул, используя метод evaluteInCell.

Смежные вопросы