Poi向Word插入表格,設定表格邊框和表格居中

WaiSaa發表於2020-11-05

Backgroud

網上沒查到相關能用的經驗,於是自己去扒的poi官網查到的,這裡做個記錄,同時分享給大家,後面有時間會再寫篇部落格介紹poi替換word模板,涉及文字替換,插入表格,插入圖片等。

先貼張效果圖

在這裡插入圖片描述

設定表格邊框樣式

/**
 * 設定表格邊框樣式
 */
private static void formatTableBolder(XWPFTable table) {
    // 雙實線邊框
    String bolderType = "double";
    CTTblBorders borders = table.getCTTbl().getTblPr().addNewTblBorders();
    // 設定內邊框樣式,預設單實線
//        CTBorder hBorder = borders.addNewInsideH();
//        hBorder.setVal(STBorder.Enum.forString(bolderType));
//        hBorder.setSz(new BigInteger("1")); // 線條大小
//        hBorder.setColor("000000"); // 設定顏色
//
//        CTBorder vBorder = borders.addNewInsideV();
//        vBorder.setVal(STBorder.Enum.forString(bolderType));
//        vBorder.setSz(new BigInteger("1"));
//        vBorder.setColor("000000");

    // 設定上下左右外邊框
    CTBorder lBorder = borders.addNewLeft();
    lBorder.setVal(STBorder.Enum.forString(bolderType));
    lBorder.setSz(new BigInteger("1"));
    lBorder.setColor("000000");

    CTBorder rBorder = borders.addNewRight();
    rBorder.setVal(STBorder.Enum.forString(bolderType));
    rBorder.setSz(new BigInteger("1"));
    rBorder.setColor("000000");

    CTBorder tBorder = borders.addNewTop();
    tBorder.setVal(STBorder.Enum.forString(bolderType));
    tBorder.setSz(new BigInteger("1"));
    tBorder.setColor("000000");

    CTBorder bBorder = borders.addNewBottom();
    bBorder.setVal(STBorder.Enum.forString(bolderType));
    bBorder.setSz(new BigInteger("1"));
    bBorder.setColor("000000");
}

設定表格居中

這裡是表格整體居中,不是表格內容居中。

XWPFTable table = doc.createTable(2,5);
// 設定表格居中
table.setTableAlignment(TableRowAlign.CENTER);

相關文章