Java Apache Poi Написать Excel - PullRequest
       28

Java Apache Poi Написать Excel

0 голосов
/ 17 ноября 2018

Я работаю в приложении на Java, чтобы написать в Excel.Я использую Apache Poi библиотеки.У меня есть требование создать сводную таблицу.Я могу создать сводную таблицу и суммировать столбцы, используя приведенный ниже код.

CellReference topLeft = new CellReference(0, 0);
CellReference bottomRight = new CellReference(10, 3);
AreaReference aref = new AreaReference(topLeft, bottomRight);
CellReference pos = new CellReference(0, 0);
XSSFSheet pivotSheet = workbook.createSheet("PivotSheet");
XSSFPivotTable pivotTable = pivotSheet.createPivotTable(aref,pos,dataSheet)
pivotOrgWiseSheet.setDisplayGridlines(true);
pivotTable.addRowLabel(0);
pivotTable.addRowLabel(1);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 2, "Sum of column3");
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 3, "Sum of column4");

Но приведенный выше код генерирует Excel как enter image description here

Но я неУбедитесь, почему ключевое слово «значения» входит в заголовок 2-го столбца, а также возможно ли изменить значение «Метка строки» на пользовательский текст, например «Категория»

. Мне нужно что-то вроде ниже.

enter image description here

Я не уверен, как удалить ключевое слово «Значения», но я думаю, чтобы изменить заголовок на пользовательскую строку, мы должны получить значение и установить его

1 Ответ

0 голосов
/ 17 ноября 2018

В Excel есть настройка Field Headers на вкладке Analyze или Options, в группе Show.Это переключает между отображением и скрытием заголовков полей.

См. Изменение расположения столбцов, строк и промежуточных итогов .

Соответствующая настройка в org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPivotTableDefinition равна setShowHeaders.

Так что

...
pivotTable.getCTPivotTableDefinition().setShowHeaders(false);
...

следует скрывать заголовки полей в сводной таблице.

Но ваша картинка с желаемым результатом выглядит больше, как будто заголовки данных видны, ноRowHeaderCaption был изменен, и первая строка, содержащая DataCaption, скрыта.Это было бы:

...
//pivotTable.getCTPivotTableDefinition().setShowHeaders(false);
pivotTable.getCTPivotTableDefinition().setRowHeaderCaption("Category");
pivotTable.getCTPivotTableDefinition().setDataCaption("Changed Data Caption");
CellUtil.getRow(pos.getRow(), pivotSheet).setZeroHeight(true);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...