Таблица форматирования XWPFTable с использованием Apache Poi
Как я могу отформатировать таблицу при создании файла docx с помощью Apache POI. Я хочу установить размер ячеек, шрифт текста, цвет и т. Д.
Я нашел этот пример, но размер ячейки устанавливается в соответствии с размером текста.
XWPFDocument document = new XWPFDocument();
// New 2x2 table
XWPFTable tableOne = document.createTable();
XWPFTableRow tableOneRowOne = tableOne.getRow(0);
tableOneRowOne.getCell(0).setText("Hello");
tableOneRowOne.addNewTableCell().setText("World");
XWPFTableRow tableOneRowTwo = tableOne.createRow();
tableOneRowTwo.getCell(0).setText("This is");
tableOneRowTwo.getCell(1).setText("a table");
Я хочу центрировать таблицу и увеличивать размер ячеек.
2 ответа
Вы можете поместить таблицу в центр, используя: table.setTableAlignment(TableRowAlign.CENTER);
На данный момент я не верю, что у классов XWPFTable* есть прямые установщики для этого. Вместо этого вам нужно взять соответствующий объект CT* из таблицы, строки или ячейки и установить свойства напрямую.
Файл.docx - это просто zip-файл из XML-файлов. Итак, я бы предложил вам создать два простых текстовых документа. В одной есть простая таблица, а в другой - эта таблица, но с примененным форматированием. Затем, разархивируйте оба и разложите их, чтобы увидеть, какие параметры были установлены для применения желаемого форматирования.
Наконец, получите соответствующий объект CT и сделайте соответствующий вызов. например, если для ячейки таблицы установлено значение foo="bar", вы должны сделать: XWPFTableCell cell = xwpfTable.getRow(0).getCell(0); CTTc rawCell = cell.getCTTc(); rawCell.setFoo("бар");
Если вы нашли подходящий прием, рассмотрите возможность отправки патча для добавления обёрток к классам XWPFTable. Просто откройте ошибку в POZ bugzilla (https://issues.apache.org/bugzilla/) и загрузите патч.