2010-06-30 53 views
2

通常CSV和excel文件格式將用於導入數據,因爲它很容易以編程方式提取數據。我的用戶不喜歡excel文件格式的數據輸入,他們喜歡word文檔。但我不確定如何從Microsoft word文檔中提取數據。有沒有人試過?你有什麼建議嗎?是否可以從Microsoft Word文檔導入數據?

找到這個link,但不知道如何創建這樣的模板以及在Java中使用哪些API來提取值。

+1

哪個版本的Word? ['antiword'](http://www.winfield.demon.nl/)可以輸出'.doc'文件作爲文本,但你可能在談論'.docx' – 2010-06-30 02:28:28

+0

任何人。 doc或docx都不錯。 – 2010-06-30 02:30:18

+1

您可能想要了解InfoPath,它的MS表單技術,您可以從MS Word中導入表單。 – ktingle 2010-06-30 02:32:04

回答

0

我喜歡這個答案進來評論:

你可能想探索的InfoPath,其MS表單技術,您可以從MS Word導入表單。 - ktingle 6月30日2:32

5

有像Apache POI這樣的庫使它比它本來更容易。

+0

您是否知道Apache POI不會讀文檔? – 2010-06-30 02:26:02

+0

@Venkat是的,它讀取Word,Excel,PowerPoint等。它也允許書寫,但其寫作能力更有限。 – 2010-06-30 02:27:58

2

如果我們想到Microsoft Office Word文檔Java在構建類中沒有任何處理這個問題的辦法,但Apache Foundation開發的Apache POI包爲您提供了使用Java讀取Microsoft Word文檔的能力。

import org.apache.poi.poifs.filesystem.*; 
import org.apache.poi.hwpf.*; 
import org.apache.poi.hwpf.extractor.*; 
import java.io.*; 

public class readDoc 
{ 
    public static void main(String[] args) 
    { 
     String filesname = "Hello.doc"; 
     POIFSFileSystem fs = null; 
     try 
     { 
        fs = new POIFSFileSystem(new FileInputStream(filesname; 
        //Couldn't close the braces at the end as my site did not allow it to close 

        HWPFDocument doc = new HWPFDocument(fs); 

      WordExtractor we = new WordExtractor(doc); 

      String[] paragraphs = we.getParagraphText(); 

      System.out.println("Word Document has " + paragraphs.length + " paragraphs"); 
      for(int i=0; i<paragraphs .length; i++) { 
      paragraphs[i] = paragraphs[i].replaceAll("\\cM?\r?\n",""); 
        System.out.println("Length:"+paragraphs[ i ].length()); 
      } 
       } 
       catch(Exception e) { 
        e.printStackTrace(); 
       } 
     } 
} 

你仍然可以參考更多的從這個link

我希望這有助於你

相關問題