Javaのデータベースに保存されているPOIリードワード文書を使用して

自分の使用をダウンロードするためのポイのjarパッケージが必要

各テーブルの内容を読み取るために二つの部分、1分けされるように、読み取りワード文書が1つの傍受、すべての画像を複数の画像が含まれています。

   / ** *段落の内容をトラバース
     * docxReadPath文書アドレス
     * uploadPicの画像アップロードアドレス
     * picFileは、アドレスの後に画像を保存
     * @param ドキュメント
     * @return XWPFDocument 
     * @throws IOExceptionが 
      * / 
    パブリック 静的な文字列readPar(XWPFDocument文書、docxReadPath文字列、文字列uploadPic、 picFile文字列){ 
         文字列失敗 = "成功事例の" ; 
     イテレータ<XWPFParagraph> itPara document.getParagraphsIterator =();
試み{
  //すべての単語の内容を読み
        ながら、(itPara.hasNext()){
      
        XWPFParagraph =段落(XWPFParagraph)itPara。次の()。

          //実行が同じ文字属性の同じ領域を表し、結果は''分離;
          リスト<XWPFRun> = paragraph.getRuns実行(); // paragraph.getRuns();
          文字列のファイル名= "";
          のため(int型I = 0 ; I <runs.size(); I ++){

            ストリングoneparaString = runs.get(I).getText(runs.get(I).getTextPosition())。

             System.out.println(oneparaString)。

          }

       }
              一覧<XWPFPictureData> picList = document.getAllPictures(); (XWPFPictureData PIC:picList){
               バイト [] bytev = pic.getData()。
              ストリングimgName = pic.getFileName()。                           
        System.out.println( "=====图片生成中========" + imgName)。 もし(! "image1.jpeg" .equals(imgName)){ たFileOutputStream fosの = 新しいのFileOutputStream(uploadPic + "/" + imgName)。 fos.write(bytev)。 } } } キャッチ(例外e){ e.printStackTrace(); System.out.println( "=====错误信息====" + e.getMessage()); 失敗 =「false」に } 戻り失敗。 }
 / ** 
     *遍历所有表格的内容
     * @paramの文書
     * @throws にFileNotFoundException 
      * / 
    パブリック 静的 ボイドreadTableContent(XWPFDocument文書){ 
        イテレータ <XWPFTable> itTable = document.getTablesIterator()。
        int型 IND = 0 ;
        一方、(itTable.hasNext()){ 
            IND ++ 
            XWPFTableテーブル = (XWPFTable)itTable.next();
            // 
            int型 RCOUNT = table.getNumberOfRows();
            ためにINTは、I <RCOUNT; iが0 = I ++ ){ 
                XWPFTableRow行 = table.getRow(I)。
                //  
                リスト<XWPFTableCell>細胞= row.getTableCells();
                INT LEN = cells.size()。
                INT ; lenのJ <J = 0 J ++ ){ 
                    XWPFTableCell XC = cells.get(J)。
                    文字列SC = xc.getText()。
                          System.out.println( "第" + IND + "个表格、第" +(I + 1)+ "行、第" +(J + 1)+ "列" + SC)。
        } 
    }
 / ** 
     *读取文件
     * @param srcPath 
     * @return XWPFDocument
      * / 
    パブリック 静的XWPFDocument READ_FILE(文字列srcPath)
    { 
        文字列[] SP = srcPath.split( "\\。" );
        もし((sp.length> 0)&& SP [sp.length - 1] .equalsIgnoreCase( "DOCX" ))
        { 
            試み{ 
                 FileInputStreamのFIS = 新しいFileInputStreamを(srcPath)。
                  XWPFDocumentのXDOC = 新しいXWPFDocument(FIS); 
                  XWPFWordExtractor抽出 =新しいXWPFWordExtractor(XDOC)。
                
               // OPCPackageパック= POIXMLDocument.openPackage(srcPath)。
               // XWPFDocumentドキュメント=新XWPFDocument(パック)。
                リターンXDOC。
            } キャッチ(IOExceptionを電子){ 
                するSystem.out.println( "读取文件出错!" )。
                e.printStackTrace(); 
                リターン ヌル
            } 
        } 
        戻り ヌル
    }
 
  
パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException { 
        文字列DOCX:= "\\ bb.docx F" 
        XWPFDocument文書 = READ_FILE(DOCX)。
        readPar(文書)。
        readTableContent(文書)。
    }

 

 
 
 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/xl1314666/p/11898273.html