Вложенный стол docx4j - PullRequest
       11

Вложенный стол docx4j

0 голосов
/ 30 марта 2019

Мне нужно нажать на второй стол в моем основном столе.Я использую основную таблицу для форматирования правильного текста: я создаю класс в java для генерации учебного плана, поэтому мне нужна главная таблица для создания хорошего шаблона

Я пытаюсь вставить элемент Tbl в Tc(элемент ячейки) главной таблицы, но Word выдает ошибку о неправильном шаблоне.Он спрашивает меня, хочу ли я в любом случае открыть документ: он показывает правильно вложенную таблицу, но я не хочу, чтобы ошибка отображалась.

    ObjectFactory factory = Context.getWmlObjectFactory();

        Tbl mainTable = TblFactory.createTable(2, 2, cellWidthTwips );
        List<Object> rows = table.getContent();
        Tr row = (Tr) rows.get(0);
        List<Object> cells = row.getContent();
        Tc cell = (Tc) cells.get(0);

        Tbl nestedTable = TblFactory.createTable(1, 5, widthTips/columns );
        cell.getContent().add(nestedTable);

Я пробовал также

Tbl nestedTable2 = factory.createTbl();

Где я не прав?

1 Ответ

0 голосов
/ 02 апреля 2019

Предполагается, что MDD MainDocumentPart:

int widthTwips = 4788;
Tbl mainTable = TblFactory.createTable(2, 2, widthTwips);
List<Object> rows = mainTable.getContent();
Tr row = (Tr) rows.get(0);
List<Object> cells = row.getContent();
Tc cell = (Tc) cells.get(0);

Tbl nestedTable = TblFactory.createTable(1, 2, 2000);

// You'll get an error in Word if you don't have an empty <p/> after the nested table.
// Since TblFactory.createTable automatically added an empty <p>, add the table before it
cell.getContent().add(0, nestedTable);

mdp.getContent().add(mainTable);

См. Пояснительный комментарий к фрагменту кода.

...