如何使用poi在word表格中新增行的4种方法

/**
 * 为表格插入数据,行数不够添加新行
 *
 * @param table     需要插入数据的表格
 * @param tableList 插入数据集合
 */
public static void insertTable(XWPFTable table, List<String[]> tableList) {
    //table.addNewRowBetween 没实现,官网文档也说明,只有函数名,但没具体实现,但很多文章还介绍如何使用这个函数,真是害人
    //table.insertNewTableRow 本文用这个可以,但是要创建 cell,否则不显示数据
    //table.addRow() 在表格最后加一行
    // table.addRow(XWPFTableRow row, int pos) 没试过,你可以试试。
    //table.createRow() 在表格最后一加行

    for (int i = 0; i < tableList.size(); i++) {//遍历要添加的数据的list
        XWPFTableRow newRow = table.insertNewTableRow(i+1);//为表格添加行
        String[] strings =  tableList.get(i);//获取list中的字符串数组
        for (int j = 0; j < strings.length; j++) {//遍历list中的字符串数组
            String strings1 =  strings[j];
            newRow.createCell();//在新增的行上面创建cell
            newRow.getCell(j).setText(strings1);//给每个cell赋值。

        }
}
  table.addNewRowBetween 没实现,官网文档也说明,只有函数名,但没具体实现,但很多文章还介绍如何使用这个函数,真是害人
    table.insertNewTableRow 这个可以,但是要创建 cell,否则不显示数据
    table.addRow() 在表格最后加一行 ,不适用于复杂表格
   table.addRow(XWPFTableRow row, int pos) 没试过,你可以试试。
    table.createRow() 在表格最后加行,不适用于复杂表格

使用POI操作Word表格的单元格进拆分,需要以下步骤: 1. 获取需要拆分的表格对象,可以使用XWPFDocument类的getTableArray()方法获取文档的所有表格,也可以使用XWPFTable类的getCell()方法获取表格的单元格。 2. 获取需要拆分的单元格对象,可以使用XWPFTable类的getCell()方法获取单元格对象。 3. 获取单元格的段落对象,可以使用XWPFTableCell类的getParagraphs()方法获取单元格的所有段落。 4. 获取段落的文字对象,可以使用XWPFParagraph类的getRuns()方法获取段落的所有文字。 5. 对单元格的文字进分割,可以使用Java的字符串分割方法,如split()方法。 6. 创建新的单元格对象,可以使用XWPFTableRow类的createCell()方法创建新的单元格对象。 7. 将拆分后的文字填充到新的单元格,可以使用XWPFParagraph类的createRun()方法创建新的文字对象,然后使用setText()方法设置文字内容。 下面是一个示例代码: ``` XWPFDocument doc = new XWPFDocument(new FileInputStream("test.docx")); // 获取第一个表格对象 XWPFTable table = doc.getTables().get(0); // 获取第一个单元格对象 XWPFTableCell cell = table.getRow(0).getCell(0); // 获取单元格的所有段落 List<XWPFParagraph> paragraphs = cell.getParagraphs(); // 获取第一个段落的所有文字 List<XWPFRun> runs = paragraphs.get(0).getRuns(); // 将文字按照“/”进分割 String[] texts = runs.get(0).getText(0).split("/"); // 创建新的单元格对象 XWPFTableCell newCell = table.getRow(0).createCell(); // 填充拆分后的文字到新的单元格 XWPFParagraph newParagraph = newCell.addParagraph(); for (String text : texts) { XWPFRun newRun = newParagraph.createRun(); newRun.setText(text); } // 删除旧的单元格 table.getRow(0).removeCell(0); doc.write(new FileOutputStream("test.docx")); ``` 需要注意的是,在拆分单元格之后需要将旧的单元格对象删除,否则会导致表格布局混乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值