栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

java Apache POI Word现有表插入具有单元格样式和格式的行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java Apache POI Word现有表插入具有单元格样式和格式的行

以下代码获取文档中第一个表中第二行的精确副本。然后,它更改此行中单元格的文本内容。然后将此复制的行插入到此表的第2行和第3行之间。

不断变化的内容之前必须完成

table.addRow
,因为该行必须在插入之前完整列表tableRows并将其添加到
TrArray
了的CTTbl
ctTbl
。以后的更改将不会写入
XML
。我还不知道为什么会这样。

然后,代码获取最后一行的副本,并将此副本添加到表的末尾。在此还必须先更改内容

table.addRow

import java.io.*;import org.apache.poi.xwpf.usermodel.*;import  org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;public class WordInsertTableRow { public static void main(String[] args) throws Exception {  XWPFdocument doc = new XWPFdocument(new FileInputStream("source.docx"));  XWPFTable table = doc.getTableArray(0);//insert new row, which is a copy of row 2, as new row 3:  XWPFTableRow oldRow = table.getRow(1);  CTRow ctrow = CTRow.Factory.parse(oldRow.getCtRow().newInputStream());  XWPFTableRow newRow = new XWPFTableRow(ctrow, table);  int i = 1;  for (XWPFTableCell cell : newRow.getTableCells()) {   for (XWPFParagraph paragraph : cell.getParagraphs()) {    for (XWPFRun run : paragraph.getRuns()) {     run.setText("New row 3 cell " + i++, 0);    }   }  }  table.addRow(newRow, 2);//insert new last row, which is a copy previous last row:  XWPFTableRow lastRow = table.getRows().get(table.getNumberOfRows() - 1);  ctrow = CTRow.Factory.parse(lastRow.getCtRow().newInputStream());  newRow = new XWPFTableRow(ctrow, table);  i = 1;  for (XWPFTableCell cell : newRow.getTableCells()) {   for (XWPFParagraph paragraph : cell.getParagraphs()) {    for (XWPFRun run : paragraph.getRuns()) {     run.setText("New last row cell " + i++, 0);    }   }  }  table.addRow(newRow);  doc.write(new FileOutputStream("result.docx"));  doc.close(); }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号