Ms word 在使用java和docx4j生成docx文件时,如何在单元格上使用和应用HMerge?
我找到了关于如何使用docx4j生成docx文件的简单表格的教程。我看过一个关于如何垂直合并单元格的示例。成功了。但我也尝试过使用水平合并。但是什么也没发生。如何使用Ms word 在使用java和docx4j生成docx文件时,如何在单元格上使用和应用HMerge?,ms-word,openxml,docx,docx4j,wordprocessingml,Ms Word,Openxml,Docx,Docx4j,Wordprocessingml,我找到了关于如何使用docx4j生成docx文件的简单表格的教程。我看过一个关于如何垂直合并单元格的示例。成功了。但我也尝试过使用水平合并。但是什么也没发生。如何使用HMerge?我发现这个类的值可以是“restart”或“continue”。这些价值观能做什么?下面是一个示例代码 Tbl tblGI = factory.createTbl(); Tr trGI = factory.createTr(); Tc tcGI1 = factory.createTc(); TcPr tcpr = n
HMerge
?我发现这个类的值可以是“restart”
或“continue”
。这些价值观能做什么?下面是一个示例代码
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的单个单元格。您可以使用w:gridSpan,如下所示:
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="TableGrid"/>
<w:tblW w:w="0" w:type="auto"/>
<w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="4788"/>
<w:gridCol w:w="4788"/>
</w:tblGrid>
<w:tr >
<w:tc>
<w:tcPr>
<w:tcW w:w="9576" w:type="dxa"/>
<w:gridSpan w:val="2"/>
</w:tcPr>
<w:p >
</w:p>
</w:tc>
</w:tr>
<w:tr >
<w:tc>
<w:tcPr>
<w:tcW w:w="4788" w:type="dxa"/>
</w:tcPr>
<w:p />
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="4788" w:type="dxa"/>
</w:tcPr>
<w:p />
</w:tc>
</w:tr>
</w:tbl>
在TcPr中,有get/setGridSpan
ps上述XML由Word 2010生成。您可以解压docx以查看它。gridspan非常有用。虽然我不太明白上面的xml代码。但我试过网格。谢谢杰森先生和更多的权力。谢谢你的帮助回答和XML杰森。我刚刚通过测试发现,ApachePOI在默认情况下不使用w:tblGrid元素创建表。我必须使用子w:gridCol元素手动创建它,以避免“列数或行中的单元格数溢出为表指定的fo:table列数”错误。我只是想提一下,万一别人也犯了这个错误。