Я нашел учебники о том, как создать простую таблицу при создании файла docx с помощью docx4j. и видели образец того, как объединить ячейки по вертикали. Это сработало. но я пробовал то же самое с использованием горизонтального слияния. но ничего не случилось. Как использовать HMerge
? Я обнаружил, что значения этого класса могут быть "restart"
или "continue"
. что могут сделать эти ценности? вот пример кода.Как использовать и применять HMerge в ячейке при создании файла docx с помощью java и docx4j?
Tbl tblGI = factory.createTbl();
Tr trGI = factory.createTr();
Tc tcGI1 = factory.createTc();
TcPr tcpr = new TcPr();
HMerge hmerge = new HMerge();
hmerge.setVal("restart");
tcpr.setHMerge(hmerge);
tcGI1.setTcPr(tcpr);
tcGI1.getContent().add(wordMLPackage.getMainDocumentPart().createParagraphOfText("sample merged cell"));
trGI.getContent().add(tcGI1);
Tr trGI2 = factory.createTr();
Tc tcGI21 = factory.createTc();
tcGI21.getContent().add(wordMLPackage.getMainDocumentPart().createParagraphOfText("row2 column1"));
trGI2.getContent().add(tcGI21);
Tc tcGI22 = factory.createTc();
tcGI22.getContent().add(wordMLPackage.getMainDocumentPart().createParagraphOfText("row2 column2"));
trGI2.getContent().add(tcGI22);
tblGI.getContent().add(trGI1);
tblGI.getContent().add(trGI2);
Этот код показывает таблицу с двумя строками. первая строка имеет только один столбец и ячейку (которая должна быть объединена). и второй ряд с двумя ячейками. Как я сделать первый ряд быть объединены и будет одна ячейка с пролетом колонны 2.
плохо попробуйте используя сетка. – Weddy
gridspan отлично работает. хотя я не совсем понял xml-код выше. но я попробовал gridspan. Благодарю вас. Джейсон и больше власти. – Weddy
Спасибо за полезный ответ и XML Jason. Я только что узнал, что Apache POI не создает таблицы с элементом w: tblGrid по умолчанию. Я должен был создать это вручную с помощью дочерних элементов w: gridCol, чтобы избежать «Число столбцов или количество ячеек в строке переполняет количество столбцов fo: table-column, указанных для таблицы». Просто хотел упомянуть об этом, потому что другие тоже попали в эту ошибку. –