1. 程式人生 > 實用技巧 >java使用poi讀取doc和docx檔案

java使用poi讀取doc和docx檔案

maven構建的專案-->pom.xml檔案

  • eclipse提供Dependencies直接新增依賴jar包的工具:直接搜尋poi以及poi-ooxml即可,maven會自動依賴需要的jar包:
  1. poi提供microsoft office舊版本支援,eg .xls Excel
  2. poi-ooxml提供microsoft office新版本支援,eg .xlsx Excel
  • 或者手動修改pom.xml,在新增jar包依賴的地方加入

翻過這道山,就有人聽到你的故事。
  1. 1 <dependency>
    2         <groupId>org.apache.poi</groupId>
    3         <artifactId>poi</artifactId>
    4         <version>3.10-FINAL</version>
    5     </dependency>
    1 <dependency>
    2         <groupId>org.apache.poi</groupId>
    3         <artifactId>poi-ooxml</artifactId>
    4         <version>3.10-FINAL</version>
    5     </dependency>

java使用poi讀取doc和docx檔案(maven自動匯入依賴包)

於是在網上搜尋了一陣之後才發現原來doc文件和excel一樣不能用普通的io流的方法來讀取,而是也需要用poi,於是進行了一番嘗試後,終於以正確的編碼格式讀取了這個doc檔案。

在網上搜索的過程中發現doc和docx的讀取方法是不一樣的,於是順帶也學了一下docx檔案的簡單讀取。

一、導包:
doc檔案的讀取,需要匯入poi-scratchpad的jar包和相關依賴包:

docx檔案讀取,需要匯入poi-ooxml的jar包和相關依賴包:

我用的是maven構建專案,相關的依賴包會自動匯入,maven導包配置如下:

 1 <dependency>
 2         <groupId>org.apache.poi</groupId>
 3         <artifactId>poi-ooxml</artifactId>
 4         <version>3.8</version>
 5     </dependency>
 6     <dependency>
 7         <groupId>org.apache.poi</groupId>
 8         <artifactId>poi-scratchpad</artifactId>
 9         <version>3.8</version>
10     </dependency>

二、讀取檔案的程式碼:
1、doc檔案讀取簡單示例:

 1 public static void readAndWriterTest3() throws IOException {
 2         File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");
 3         String str = "";
 4         try {
 5             FileInputStream fis = new FileInputStream(file);
 6             HWPFDocument doc = new HWPFDocument(fis);
 7             String doc1 = doc.getDocumentText();
 8             System.out.println(doc1);
 9             StringBuilder doc2 = doc.getText();
10             System.out.println(doc2);
11             Range rang = doc.getRange();
12             String doc3 = rang.text();
13             System.out.println(doc3);
14             fis.close();
15         } catch (Exception e) {
16             e.printStackTrace();
17         }
18     }

2、docx檔案讀取簡單示例:

 1 public static void readAndWriterTest4() throws IOException {
 2         File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");
 3         String str = "";
 4         try {
 5             FileInputStream fis = new FileInputStream(file);
 6             XWPFDocument xdoc = new XWPFDocument(fis);
 7             XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
 8             String doc1 = extractor.getText();
 9             System.out.println(doc1);
10             fis.close();
11         } catch (Exception e) {
12             e.printStackTrace();
13         }
14     }

//20171218修改
我並沒有在工作中操作過word,這篇部落格也只是一時興起所做,因此寫的很簡單。
而最近陸續有朋友找我詢問相關的問題,其中有好幾個都在詢問依賴包有哪些,為了避免一再回答這種問題,特將依賴包截圖:

poi讀取docx中的文字和圖片(自己應用) 範仁義 2018-01-01 14:30閱讀:1933評論:0推薦:0編輯 poi讀寫Excel 範仁義 2018-01-01 14:09閱讀:176評論:0推薦:0編輯 poi讀取word2003(.doc文件)中的表格 範仁義 2017-12-31 09:35閱讀:915評論:0推薦:1編輯 使用poi讀取word2007(.docx)中的複雜表格 範仁義 2017-12-31 09:33閱讀:1341評論:0推薦:1編輯 Java之POI讀取Excel的Package should contain a content type part [M1.13]] with root cause異常問題解決 範仁義 2017-12-30 11:28閱讀:2631評論:0推薦:0編輯 利用POI抽取word中的圖片並儲存在檔案中 範仁義 2017-12-30 08:54閱讀:1388評論:0推薦:0編輯 最直觀的poi的使用幫助(告訴你怎麼使用poi的官網),操作word,excel,ppt 範仁義 2017-12-30 03:55閱讀:453評論:0推薦:0編輯 在word中doc與docx的區別是什麼(整理) 範仁義 2017-12-30 02:13閱讀:1534評論:0推薦:0編輯 POI 讀取word (word 2003 和 word 2007)(轉,好用) 範仁義 2017-12-30 02:10閱讀:322評論:0推薦:0編輯 java使用poi讀取doc和docx檔案(maven自動匯入依賴包) 範仁義 2017-12-30 01:53閱讀:8700評論:1推薦:0編輯 java使用poi讀取word(簡單,簡約,直觀) 範仁義 2017-12-30 01:33閱讀:293評論:0推薦:0編輯 POI 讀取word (word 2003 和 word 2007)(轉) 範仁義 2017-09-27 14:57閱讀:520評論:0推薦:0編輯 java讀取excel 範仁義 2017-09-27 10:57閱讀:624評論:0推薦:1編輯