java - 将新行插入到 XWPFTable 中

标签 java apache-poi

我尝试制作一个申请,以在其中插入新的“工作经验”以供引用;

public class TestWordPOI {

    public static void main(String[] args) throws InvalidFormatException, IOException {
        boolean add = false;

        XWPFDocument document = new XWPFDocument(OPCPackage.open(new java.io.File("C:\\Users\\luca\\Desktop\\CV_Europass_WvWinden.docx")));

        for (XWPFTable tbl : document.getTables()) {
            for (XWPFTableRow row : tbl.getRows()) {
                for (XWPFTableCell cell : row.getTableCells()) {
                    for (XWPFParagraph p : cell.getParagraphs()) {
                        for (XWPFRun r : p.getRuns()) {
                            String text = r.getText(0);
                            System.out.println("riga? :"+text);

                            if ((text!=null)&&text.contains("Work experience") ) {
//when i find "work experience" i need insert the new work experience
                           add=true;
                            }
                            if( add ) 
                                break;
                        }
                        if( add ) 
                            break;
                    }
                    if( add ) 
                        break;
                }
                if( add ) {

                    break;}         
            }
            if( add ) {

                XWPFTableRow row =tbl.createRow();   //
                row.addNewTableCell();
                XWPFTableCell cell = row.createCell();
                cell.setText("New work");

             row.addNewTableCell().setText("Code monkey");
                break;}


        }

        File output = new File("output.docx");
        document.write(new FileOutputStream(output)); 

应用程序在页面底部插入新的“工作经验”,我需要将其插入到最后的经验和标题“工作经验”之间。 有人知道我的错误吗?

最佳答案

for (XWPFTable tbl : document.getTables()) {
            for (XWPFTableRow row : tbl.getRows()) {
                y++;
                for (XWPFTableCell cell : row.getTableCells()) {                
                   .
                   .
                   .
                   .

            if( add ) {
                XWPFTableRow row =tbl.createRow();

                 row.addNewTableCell().setText("some thing");

                tbl.addRow(row, y);

                break;}

我使用1个计数器来计算行数,当我找到工作经验时,我使用计数器在corret linee处插入新行

关于java - 将新行插入到 XWPFTable 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227828/

相关文章:

java - 如何在文本文件中的两行之间写入文本。 java

java - 杜克快速重复数据删除 : java. lang.UnsupportedOperationException : Operation not yet supported?

java - 使用 java apache POI 写入 Excelsheet 时出现问题

java - 我们可以使用java更新受密码保护的Excel工作表的行和列吗?

java - 如何使用 Tika 或 POI 将 doc 转换为 docx?

java - 启用持久性的嵌入式 HornetQ 无法通过编程配置启动

java.sql.SQL语法错误异常 : ORA-00933: SQL command not properly ended

java - 从另一个迭代和另一个类添加到 HashSet

java - 将 Integer 对象添加到 hashSet

java - 使用 apache poi api 创建 Word 文档时,如何添加 X of Y 格式的页码?