自分の使用をダウンロードするためのポイの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(文書)。 }