Search in sources :

Example 6 with Tbl

use of org.docx4j.wml.Tbl in project docx4j-template by vindell.

the class Docx4J_例子2 method createTableTest.

public void createTableTest(WordprocessingMLPackage wordMLPackage, MainDocumentPart t, ObjectFactory factory) throws Exception {
    RPr titleRpr = getRPr(factory, "宋体", "000000", "22", STHint.EAST_ASIA, true, false, false, false);
    RPr contentRpr = getRPr(factory, "宋体", "000000", "22", STHint.EAST_ASIA, false, false, false, false);
    Tbl table = factory.createTbl();
    addBorders(table, "2");
    // 百分比
    double[] colWidthPercent = new double[] { 15, 20, 20, 20, 25 };
    setTableGridCol(wordMLPackage, factory, table, 100, colWidthPercent);
    List<String> columnList = new ArrayList<String>();
    columnList.add("序号");
    columnList.add("姓名信息|姓甚|名谁");
    columnList.add("名刺信息|籍贯|营生");
    addTableTitleCell(factory, wordMLPackage, table, columnList, titleRpr, JcEnumeration.CENTER, true, "C6D9F1");
    for (int i = 0; i < 10; i++) {
        Tr contentRow = factory.createTr();
        addTableCell(factory, wordMLPackage, contentRow, i + "", contentRpr, JcEnumeration.CENTER, false, null);
        addTableCell(factory, wordMLPackage, contentRow, "无名氏", contentRpr, JcEnumeration.CENTER, false, null);
        addTableCell(factory, wordMLPackage, contentRow, "佚名", contentRpr, JcEnumeration.CENTER, false, null);
        addTableCell(factory, wordMLPackage, contentRow, "武林", contentRpr, JcEnumeration.CENTER, false, null);
        addTableCell(factory, wordMLPackage, contentRow, "吟诗赋曲", contentRpr, JcEnumeration.CENTER, false, null);
        table.getContent().add(contentRow);
    }
    setTableAlign(factory, table, JcEnumeration.CENTER);
    t.addObject(table);
}
Also used : RPr(org.docx4j.wml.RPr) ParaRPr(org.docx4j.wml.ParaRPr) ArrayList(java.util.ArrayList) STHint(org.docx4j.wml.STHint) Tr(org.docx4j.wml.Tr) Tbl(org.docx4j.wml.Tbl)

Example 7 with Tbl

use of org.docx4j.wml.Tbl in project docx4j-template by vindell.

the class Docx4jStyle_S3 method testDocx4jCreateTable.

public void testDocx4jCreateTable() throws Exception {
    boolean landscape = false;
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage(PageSizePaper.A4, landscape);
    ObjectFactory factory = Context.getWmlObjectFactory();
    setPageMargins(wordMLPackage, factory);
    String imgFilePath = "f:/saveFile/tmp/2sql日志.jpg";
    Tbl table = createTableWithContent(wordMLPackage, factory, imgFilePath);
    wordMLPackage.getMainDocumentPart().addObject(table);
    wordMLPackage.save(new File("f:/saveFile/temp/sys_" + System.currentTimeMillis() + ".docx"));
}
Also used : ObjectFactory(org.docx4j.wml.ObjectFactory) WordprocessingMLPackage(org.docx4j.openpackaging.packages.WordprocessingMLPackage) File(java.io.File) Tbl(org.docx4j.wml.Tbl)

Example 8 with Tbl

use of org.docx4j.wml.Tbl in project docx4j-template by vindell.

the class Docx4j_替换模板 method replaceTemplateDocx.

public void replaceTemplateDocx() throws Exception {
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(inputfilepath));
    MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
    HashMap<String, String> staticMap = getStaticData();
    // 替换普通变量
    documentPart.variableReplace(staticMap);
    Document document = (Document) documentPart.getContents();
    Body body = document.getBody();
    MyTblFinder tblFinder = new MyTblFinder();
    new TraversalUtil(body, tblFinder);
    // 替换表格模板第三行数据
    Tbl firstTbl = tblFinder.getTbls().get(0);
    List<Object> trObjList = firstTbl.getContent();
    Tr tr = (Tr) trObjList.get(2);
    replaceTrTotalData(tr, getTotalData());
    int lvlIndex = 3;
    // 替换表格模板第四行数据
    int lvlTotalSize = 4;
    tr = (Tr) trObjList.get(lvlIndex);
    List<String[]> lvDataList = getLvDataList(lvlTotalSize);
    replaceTrData(firstTbl, tr, lvDataList, lvlIndex);
    // 重新获取表格数据
    trObjList = firstTbl.getContent();
    int sexTotalSize = 2;
    // 替换表格模板第五行数据
    tr = (Tr) trObjList.get(lvlIndex + lvlTotalSize);
    List<String[]> sexDataList = getSexDataList(2);
    replaceTrSexData(tr, sexDataList.get(0));
    // 替换表格模板第六行数据
    tr = (Tr) trObjList.get(4 + lvlTotalSize);
    replaceTrSexData(tr, sexDataList.get(1));
    // 替换表格模板第七行数据
    tr = (Tr) trObjList.get(5 + lvlTotalSize);
    int nationTotalSize = 56;
    List<String[]> nationDataList = getNationDataList(nationTotalSize);
    replaceTrData(firstTbl, tr, nationDataList, lvlIndex + lvlTotalSize + sexTotalSize);
    // 合并层次单元格 层次位于第3行
    mergeCellsVertically(firstTbl, 0, lvlIndex, lvlIndex + lvlTotalSize - 1);
    // 合并民族单元格 层次+性别2行
    mergeCellsVertically(firstTbl, 0, lvlIndex + lvlTotalSize + sexTotalSize, lvlIndex + lvlTotalSize + sexTotalSize + nationTotalSize - 1);
    // 替换图表数据
    String[] chartArr = getChartData();
    replacePieChartData(wordMLPackage, chartArr);
    // 保存结果
    saveWordPackage(wordMLPackage, outputfilepath);
}
Also used : MainDocumentPart(org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart) WordprocessingMLPackage(org.docx4j.openpackaging.packages.WordprocessingMLPackage) Document(org.docx4j.wml.Document) File(java.io.File) TraversalUtil(org.docx4j.TraversalUtil) MyTblFinder(org.docx4j.template.wml.MyTblFinder) Body(org.docx4j.wml.Body) Tr(org.docx4j.wml.Tr) Tbl(org.docx4j.wml.Tbl)

Example 9 with Tbl

use of org.docx4j.wml.Tbl in project docx4j-template by vindell.

the class TableWithBorders method main.

public static void main(String[] args) throws Docx4JException {
    wordMLPackage = WordprocessingMLPackage.createPackage();
    factory = Context.getWmlObjectFactory();
    Tbl table = createTableWithContent();
    addBorders(table);
    wordMLPackage.getMainDocumentPart().addObject(table);
    wordMLPackage.save(new java.io.File("src/main/files/HelloWord5.docx"));
}
Also used : Tbl(org.docx4j.wml.Tbl)

Example 10 with Tbl

use of org.docx4j.wml.Tbl 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;
}
Also used : Tr(org.docx4j.wml.Tr) Tbl(org.docx4j.wml.Tbl)

Aggregations

Tbl (org.docx4j.wml.Tbl)36 Tr (org.docx4j.wml.Tr)23 P (org.docx4j.wml.P)10 Tc (org.docx4j.wml.Tc)9 Test (org.junit.Test)8 File (java.io.File)7 TblPr (org.docx4j.wml.TblPr)7 RPr (org.docx4j.wml.RPr)6 TblBorders (org.docx4j.wml.TblBorders)6 BigInteger (java.math.BigInteger)5 WordprocessingMLPackage (org.docx4j.openpackaging.packages.WordprocessingMLPackage)5 MainDocumentPart (org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart)5 R (org.docx4j.wml.R)5 TblWidth (org.docx4j.wml.TblWidth)5 TblStyle (org.docx4j.wml.CTTblPrBase.TblStyle)4 ObjectFactory (org.docx4j.wml.ObjectFactory)4 STHint (org.docx4j.wml.STHint)4 Text (org.docx4j.wml.Text)4 ArrayList (java.util.ArrayList)3 TrpTableCellType (eu.transkribus.core.model.beans.pagecontent_trp.TrpTableCellType)2