Обновить сводную таблицу с помощью Apache POI

Нет/Минимальная документация, касающаяся POI Apache для сводных таблиц на сайте Apache, заставила меня написать это.

Я хочу обновить сводную таблицу в рабочей книге с помощью Apache POI.

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

Ответ 1

Ссылка codeMan ссылается на некоторые советы, которые выглядят весьма специфично для Apache POI и Excel. Вы увидите, что здесь нет отличной документации (она не поддерживается): http://poi.apache.org/spreadsheet/limitations.html

Процитировать Solitudes ответ в codeMans link verbatim:

Это возможно. В PivotCacheDefinition есть атрибут refreshOnLoad, для которого может быть установлено значение true. Затем кеш обновляется когда рабочая книга открыта. Подробнее здесь.

В POI это можно сделать, вызвав метод setRefreshOnLoad (boolean bool), который принимает логический параметр как параметр CTPivotCacheDefinition

Если вам нужно обновить сводную таблицу до того, как файл будет открыт, (например, чтобы затем использовать вычисляемые данные pivottable в дальнейших расчетах и ​​указать POI это), тогда я не уверен, что это было бы возможно вообще с POI и потенциальное подключение к excel с использованием COM-решения может быть способом.

Ответ 2

Помимо limitations, вы можете проверить небольшую информацию о пакет org.apache.poi.hssf.record.pivottable

Хотя, если мне нужно будет сделать то же самое, я создам таблицу/диаграмму вручную один раз и обновляю диаграмму с помощью apache poi, как я сделал здесь

Ответ 3

Прошу прощения за следующие действия, которые я сделал.

  • Заполните грубые данные для сводной таблицы в файле MyFileName.xlsx.
  • Создайте формулу динамического диапазона с помощью OFFSET() или Named Table в качестве исходных данных для сводной таблицы и создайте сводную таблицу.
  • Просто щелкните правой кнопкой мыши свою сводную таблицу и выберите

    pivotTable Options->Data-> Check Refresh Data when opening File

  • Откройте файл MyFileName.xlsx и заполните данные.

Что все... всякий раз, когда вы открываете книгу, она будет обновлена ​​до текущих данных.: -)

Примечание. Это не будет работать при создании сводной таблицы через POI.