1. 程式人生 > 程式設計 >java使用poi讀取doc和docx檔案的實現示例

java使用poi讀取doc和docx檔案的實現示例

這幾天在學習java io流的東西,有一個網友看到部落格後問了一個問題,就是說他的doc文件為什麼用我所說的方法死活就是亂碼。

我一開始以為是他方法問題,結果自己試了之後發現和他的結果一樣也是亂碼。

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

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

一、導包:

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

java使用poi讀取doc和docx檔案的實現示例

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

java使用poi讀取doc和docx檔案的實現示例

我用的是maven構建專案,相關的依賴包會自動匯入,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>

二、讀取檔案的程式碼:

1、doc檔案讀取簡單示例:

public static void readAndWriterTest3() throws IOException {
    File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");
    String str = "";
    try {
      FileInputStream fis = new FileInputStream(file);
      HWPFDocument doc = new HWPFDocument(fis);
      String doc1 = doc.getDocumentText();
      System.out.println(doc1);
      StringBuilder doc2 = doc.getText();
      System.out.println(doc2);
      Range rang = doc.getRange();
      String doc3 = rang.text();
      System.out.println(doc3);
      fis.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

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

public static void readAndWriterTest4() throws IOException {
    File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");
    String str = "";
    try {
      FileInputStream fis = new FileInputStream(file);
      XWPFDocument xdoc = new XWPFDocument(fis);
      XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
      String doc1 = extractor.getText();
      System.out.println(doc1);
      fis.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

我並沒有在工作中操作過word,這篇部落格也只是一時興起所做,因此寫的很簡單。

而最近陸續有朋友找我詢問相關的問題,其中有好幾個都在詢問依賴包有哪些,為了避免一再回答這種問題,特將依賴包截圖:

java使用poi讀取doc和docx檔案的實現示例

到此這篇關於java使用poi讀取doc和docx檔案的實現示例的文章就介紹到這了,更多相關java poi讀取doc和docx內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!