Java读取word中表格

  因为要新建一个站,公司要把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循环,输出整个行列。

运行结果

原文地址:https://www.cnblogs.com/GoForMyDream/p/8559072.html