java POI匯入Word文件
阿新 • • 發佈:2018-11-08
java使用poi讀取doc和docx檔案(maven自動匯入依賴包)
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.8</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.8</version> </dependency>
硬換行:檔案中換行,如果是鍵盤中使用了"enter"的換行。
軟換行:檔案中一行的字元數容量有限,當字元數量超過一定值時,會自動切到下行顯示。
對程式來說,硬換行才是可以識別的、確定的換行,軟換行與字型大小、縮排有關。
注意:POI 在讀取不會讀取 word 檔案中的圖片資訊; 還有就是對於 2007 版的 word(.docx), 如果 word 檔案中有表格,所有表格中的資料都會在讀取出來的字串的最後。
import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; public class Test { public static void main(String[] args) { try { InputStream is = new FileInputStream(new File("2003.doc")); WordExtractor ex = new WordExtractor(is); String text2003 = ex.getText(); System.out.println(text2003); OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx"); POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage); String text2007 = extractor.getText(); System.out.println(text2007); } catch (Exception e) { e.printStackTrace(); } } }