Java POI word常用方法 在Cell插入子表格

  1. 替换文本,段落不能直接插入(setText)内容,因为setText会把内容追加在原来内容的后面
/**
 * 替换文本
 *
 * @param key
 * @param value
 * @param paragraph
 */
public void replaceAllText(String key, String value, XWPFParagraph paragraph) {
    String text = paragraph.getText();
    if (StrUtil.isNotEmpty(text) && text.indexOf(key) != -1) {
        List<XWPFRun> runs = paragraph.getRuns();
        for (int i = (runs.size() - 1); i > 0; i--) {
            paragraph.removeRun(i);
        }
        runs.get(0).setText(text.replace(key, value), 0);
    }
}
  1. cell插入表格,在单元格里插入表格
XWPFTable cellTable = cell.insertNewTbl(qyCursorParagraph.getCTP().newCursor());//游标代表插入的位置
cellTable.getCTTbl().setTblPr(tableInitOne.getCTTbl().getTblPr());
  1. 复制表格行
/**
 * 复制表格行
 *  * @param table
 * @param sourceRow
 * @param rowIndex
 */
public void copy(XWPFTable table, XWPFTableRow sourceRow, int rowIndex) {
    //在表格指定位置新增一行
    XWPFTableRow targetRow = table.insertNewTableRow(rowIndex);
    //复制行属性
    targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr());
    List<XWPFTableCell> cellList = sourceRow.getTableCells();
    if (null == cellList) {
        return;
    }
    //复制列及其属性和内容
    XWPFTableCell targetCell = null;
    for (XWPFTableCell sourceCell : cellList) {
        targetCell = targetRow.addNewTableCell();
        //列属性
        targetCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr());
        //段落属性
        if (sourceCell.getParagraphs() != null && sourceCell.getParagraphs().size() > 0) {
            targetCell.getParagraphs().get(0).getCTP().setPPr(sourceCell.getParagraphs().get(0).getCTP().getPPr());
            if (sourceCell.getParagraphs().get(0).getRuns() != null && sourceCell.getParagraphs().get(0).getRuns().size() > 0) {
                XWPFRun cellR = targetCell.getParagraphs().get(0).createRun();
                cellR.setText(sourceCell.getText());
                cellR.setBold(sourceCell.getParagraphs().get(0).getRuns().get(0).isBold());
                cellR.setFontSize(8);
                cellR.setFontFamily("仿宋");
            } else {
                targetCell.setText(sourceCell.getText());
            }
        } else {
            targetCell.setText(sourceCell.getText());
        }
    }
}

Java操作word组件 :

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Apache POIWord文档中写入表格,并将表格中的文字设置为加粗,可以按照以下步骤进行操作: 1. 创建一个XWPFDocument对象,表示要操作的Word文档。 ```java XWPFDocument document = new XWPFDocument(); ``` 2. 创建一个XWPFTable对象,表示要插入表格。指定表格的行数和列数。 ```java int rows = 3; // 表格行数 int cols = 4; // 表格列数 XWPFTable table = document.createTable(rows, cols); ``` 3. 遍历表格的每个单元格,设置单元格中文字的样式。 ```java for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { XWPFTableCell cell = table.getRow(row).getCell(col); // 创建段落对象并设置加粗 XWPFParagraph paragraph = cell.getParagraphs().get(0); XWPFRun run = paragraph.createRun(); run.setBold(true); // 设置单元格文字内容 run.setText("Cell " + (row + 1) + "-" + (col + 1)); } } ``` 在上述代码中,我们使用双重循环遍历表格的每个单元格。对于每个单元格,我们创建一个段落对象,将其第一个运行对象设置为加粗,并设置单元格中的文字内容。 4. 最后,将XWPFDocument对象写入到文件中。 ```java FileOutputStream out = new FileOutputStream("output.docx"); document.write(out); out.close(); ``` 在这里,我们将XWPFDocument对象写入到名为"output.docx"的文件中。 请确保在代码中引入了正确的POI库以及其他所需的依赖项,并且在代码中导入了正确的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值