• 《《《Java读取word中表格》》》


    转载地址https://www.cnblogs.com/GoForMyDream/p/8559072.html

    亲测可用

    添加依赖

     <!-- 导入word需要的 需要导入的依赖 -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>4.1.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>4.1.0</version>
            </dependency>

    因为要新建一个站,公司要把word表格的部分行列存到数据库中。之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库,跪了跪了。

      但还是把java读取word中表格的方法写一下,先上代码。

    public static void testWord(String filePath){  
            try{  
               FileInputStream in = new FileInputStream(filePath);//载入文档 //如果是office2007  docx格式  
               if(filePath.toLowerCase().endsWith("docx")){  
                  //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后     
                   XWPFDocument xwpf = new XWPFDocument(in);//得到word文档的信息  
    //             List<XWPFParagraph> listParagraphs = xwpf.getParagraphs();//得到段落信息  
                   Iterator<XWPFTable> it = xwpf.getTablesIterator();//得到word中的表格 
                   
                   while(it.hasNext()){
                      
                       XWPFTable table = it.next();    
                       List<XWPFTableRow> rows=table.getRows();   
                       //读取每一行数据  
                       for (int i = 1; i < rows.size(); i++) {  
                           XWPFTableRow  row = rows.get(i);  
                           //读取每一列数据  
                           List<XWPFTableCell> cells = row.getTableCells();   
                           for (int j = 0; j < cells.size(); j++) {  
                               XWPFTableCell cell=cells.get(j);  
                               //输出当前的单元格的数据  
                               System.out.println(cell.getText());  
                          }  
                       }  
                   }  
               }
            }catch(Exception e) {
                e.printStackTrace();
            }
        }

    首先肯定是io读取文档,利用传进来的地址,接着有一个if判断语句,这个语句主要是为了判断word的版本的。因为目前word有doc和docx两种格式,这两种处理的方式不太一样。我这里用的是docx格式,判断完成后,用XWPFDocument来接收word文档信息,再用迭代器来便利word中的表格,表格肯定是有行有列,两个for循环,输出整个行列。

    运行结果

  • 相关阅读:
    树状数组和线段树
    N皇后问题(函数式编程与过程式)
    单例模式
    BitSet
    蓄水池抽样问题
    关于动态规划的一些感想
    53最大子序和
    5最长回文子串
    139单词拆分
    91.解码方法
  • 原文地址:https://www.cnblogs.com/lidar/p/12717663.html
Copyright © 2020-2023  润新知