Переопределите именованный диапазон Excel, затем сохраните, используя Apache POI

Используя Apache POI, яЯ могу найти именованный диапазон:

XSSFName[] ranges = new XSSFName[workbook.getNumberOfNames()];
for (int i = 0; i < _wb.getNumberOfNames(); i++)
    ranges[i] = workbook.getNameAt(i);

С этим яя могу в ячейке AreaReference:

AreaReference area = new AreaReference(ranges[0].getRefersToFormula());

И, наконец, я могу получить все клетки в этом диапазоне:

CellReference[] cells = area.getAllReferencedCells();

Это все работает просто отлично. Берт У меня есть сценарий использования, когда я должен переопределить область, которую охватывает диапазон. Есть способ сделать это? Я заметил, чтоrange.getRefersToFormula() метод возвращает строку, что-то вродеMySheet!$A$1:$B$8, Eстьrange.setRefersToFormula(String formula), но я'там надо веритьЭто отличный от меня способ - написать собственный анализатор формул диапазона Excel. Нет ли способа сгенерировать AreaReference с установленным значениемCell ссылки на что-то более безопасное для типов? Должен ли я на самом деле генерироватьString представлять новый ассортимент? Я думаю, что где-то будет API, чтобы помочь мне с этим, но я могукажется, не нашел его.

Обновить

Я нашел немного API, но это не таккажется, не работает, по крайней мере, это не таксохранить правильно. Вот'что я сделал

AreaReference newArea = new AreaReference(firstCell, lastCell);
ranges[0].setRefersToFormula(newArea.formatAsString())

Кажется, что формула установлена правильно, но когда я возвращаю книгу обратно на диск, диапазон совершенно неверен.

Ответы на вопрос(1)

Ваш ответ на вопрос