use of org.docx4j.wml.Tr in project docx4j-template by vindell.
the class Docx4j_替换模板 method replaceTrData.
/**
* 替换tr数据,其他插入
*/
private void replaceTrData(Tbl tbl, Tr tr, List<String[]> dataList, int trIndex) throws Exception {
TrPr trPr = XmlUtils.deepCopy(tr.getTrPr());
String tcContent = null;
String[] tcMarshaArr = getTcMarshalStr(tr);
String[] dataArr = null;
for (int i = 0, iLen = dataList.size(); i < iLen; i++) {
dataArr = dataList.get(i);
Tr newTr = null;
Tc newTc = null;
if (i == 0) {
newTr = tr;
} else {
newTr = factory.createTr();
if (trPr != null) {
newTr.setTrPr(trPr);
}
newTc = factory.createTc();
newTr.getContent().add(newTc);
}
for (int j = 0, jLen = dataArr.length; j < jLen; j++) {
tcContent = tcMarshaArr[j];
if (tcContent != null) {
tcContent = tcContent.replaceAll("(<w:t>)(.*?)(</w:t>)", "<w:t>" + dataArr[j] + "</w:t>");
newTc = (Tc) XmlUtils.unmarshalString(tcContent);
} else {
newTc = factory.createTc();
setNewTcContent(newTc, dataArr[j]);
}
// 新增tr
if (i != 0) {
newTr.getContent().add(newTc);
} else {
// 替换
newTr.getContent().set(j + 1, newTc);
}
}
if (i != 0) {
tbl.getContent().add(trIndex + i, newTr);
}
}
}
use of org.docx4j.wml.Tr in project docx4j-template by vindell.
the class TableWithBorders method createTableWithContent.
private static Tbl createTableWithContent() {
Tbl table = factory.createTbl();
Tr tableRow = factory.createTr();
addTableCell(tableRow, "Field 1");
addTableCell(tableRow, "Field 2");
table.getContent().add(tableRow);
return table;
}
use of org.docx4j.wml.Tr in project docx4j-template by vindell.
the class TableWithMergedCells method addTableRowWithMergedCells.
/**
* 本方法创建一行, 并向其中添加合并列, 然后添加再两个普通的单元格. 随后将该行添加到表格
*/
private static void addTableRowWithMergedCells(String mergedContent, String field1Content, String field2Content, Tbl table) {
Tr tableRow1 = factory.createTr();
addMergedColumn(tableRow1, mergedContent);
addTableCell(tableRow1, field1Content);
addTableCell(tableRow1, field2Content);
table.getContent().add(tableRow1);
}
use of org.docx4j.wml.Tr in project docx4j-template by vindell.
the class TableWithStyledContent method main.
/**
* 跟前面的做的一样, 我们再一次创建了一个表格, 并添加了三个单元格, 其中有两个
* 单元带有样式. 在新方法中我们传进表格行, 单元格内容, 是否为粗体及字体大小作
* 为参数. 你需要注意, 因为the Office Open specification规范定义这个属性是半个
* 点(half-point)大小, 因此字体大小需要是你想在Word中显示大小的两倍,
*/
public static void main(String[] args) throws Docx4JException {
wordMLPackage = WordprocessingMLPackage.createPackage();
factory = Context.getWmlObjectFactory();
Tbl table = factory.createTbl();
Tr tableRow = factory.createTr();
addRegularTableCell(tableRow, "Normal text");
addStyledTableCell(tableRow, "Bold text", true, null);
addStyledTableCell(tableRow, "Bold large text", true, "40");
table.getContent().add(tableRow);
addBorders(table);
wordMLPackage.getMainDocumentPart().addObject(table);
wordMLPackage.save(new java.io.File("src/main/files/HelloWord6.docx"));
}
use of org.docx4j.wml.Tr in project docx4j-template by vindell.
the class WordprocessingMLPackageRender method addTableRowWithMergedCells.
/**
* 本方法创建一行, 并向其中添加合并列, 然后添加再两个普通的单元格. 随后将该行添加到表格
*/
public void addTableRowWithMergedCells(String mergedContent, String field1Content, String field2Content, Tbl table) {
Tr tableRow1 = factory.createTr();
addMergedColumn(tableRow1, mergedContent);
addTableCell(tableRow1, field1Content);
addTableCell(tableRow1, field2Content);
table.getContent().add(tableRow1);
}
Aggregations