Я использую ПОИ Apache для управления Excel (.xls) файлы с Java.
Я пытаюсь создать новую ячейку, кого содержание является результатом формулы, как будто пользователь копировал/вставлял формулу (что я называю "относительным" путем, как напротив "абсолютного").
Для создания меня более ясным вот, простой пример:
Если я копирую формулу в ячейку A4 под Excel, это становится "=A2+B2"
: Excel адаптирует содержимое формулы динамично.
К сожалению, я не могу получить тот же результат программно. Единственное решение, которое я нашел, состоит в том, чтобы маркировать формулу и сделать грязную работу сам, но я действительно сомневаюсь, что это, как предполагается, сделано тот путь. Я не смог найти то, что я ищу в руководствах или в API.
Существует ли более легкий способ решить эту проблему? Если это имеет место, можно ли указать на меня в правильном направлении?
С уважением,
Ноли
Я не думаю, что есть. POI должен будет проанализировать формулу (с учетом A1 против $ A $ 1 против $ A1 и т. Д.), И я не верю, что у него есть такая возможность. Когда я делал это в прошлом, мне всегда приходилось справляться с этим самому. Извините - это не тот ответ, на который вы надеялись!
вы можете попробовать некоторые сторонние библиотеки Excel, большинство из них могут обрабатывать формулы относительного / абсолютного диапазона.
Я тоже думаю, что нет простого способа сделать это.
Даже примеры HSSF и XSSD на сайте POI, например TimesheetDemo строить формулы вручную. например, вокруг строки 110
String ref = (char)('A' + j) + "3:" + (char)('A' + j) + "12";
cell.setCellFormula("SUM(" + ref + ")");