Вы можете обойти эту проблему, используя динамическую оценку или ссылку, используя функцию INDIRECT .
Функция INDIRECT оценивает значение ячейки, где вычисляемая ячейка извлекается из значения другой ячейки.
Например,
- В ячейке A1 укажите ссылку на ячейку в виде простого текста (не формулы), например "C: \ tmp \ ForecastAggregate \ Total Products \ [ForecastWorksheet.xls] Бюджет на 2010 год! C10"
В A2, в ячейке, в которой вы хотите отобразить значение этой ссылочной ячейки, поместите формулу
= INDIRECT (A1)
Это выберет целевую ячейку из A1 и покажет ее значение в A2.
В Java вы можете настроить шаблон, в котором вы создадите отдельный рабочий лист (например, "irectRef ") для управления косвенными ссылками. Всякий раз, когда вы пишете внешнюю ссылку на ячейку, вы вместо этого пишете INDIRECT (xx) и помещаете ссылку в ячейку xx на листе «irectRef ». Учитывая, что Poi в основном являются интерфейсами, вы можете сделать это прозрачно, без изменений кода в коде вашего компоновщика электронных таблиц Java.
В Excel также есть макрос EVALUATE, который динамически оценивает формулы, что было бы еще проще, но это официально недокументировано (но подробно документировано в других местах!) И может поддерживаться не во всех версиях Office.
Надеюсь, это поможет!