通常CSV和excel文件格式將用於導入數據,因爲它很容易以編程方式提取數據。我的用戶不喜歡excel文件格式的數據輸入,他們喜歡word文檔。但我不確定如何從Microsoft word文檔中提取數據。有沒有人試過?你有什麼建議嗎?是否可以從Microsoft Word文檔導入數據?
找到這個link,但不知道如何創建這樣的模板以及在Java中使用哪些API來提取值。
通常CSV和excel文件格式將用於導入數據,因爲它很容易以編程方式提取數據。我的用戶不喜歡excel文件格式的數據輸入,他們喜歡word文檔。但我不確定如何從Microsoft word文檔中提取數據。有沒有人試過?你有什麼建議嗎?是否可以從Microsoft Word文檔導入數據?
找到這個link,但不知道如何創建這樣的模板以及在Java中使用哪些API來提取值。
我喜歡這個答案進來評論:
你可能想探索的InfoPath,其MS表單技術,您可以從MS Word導入表單。 - ktingle 6月30日2:32
有像Apache POI這樣的庫使它比它本來更容易。
您是否知道Apache POI不會讀文檔? – 2010-06-30 02:26:02
@Venkat是的,它讀取Word,Excel,PowerPoint等。它也允許書寫,但其寫作能力更有限。 – 2010-06-30 02:27:58
如果我們想到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
我希望這有助於你
哪個版本的Word? ['antiword'](http://www.winfield.demon.nl/)可以輸出'.doc'文件作爲文本,但你可能在談論'.docx' – 2010-06-30 02:28:28
任何人。 doc或docx都不錯。 – 2010-06-30 02:30:18
您可能想要了解InfoPath,它的MS表單技術,您可以從MS Word中導入表單。 – ktingle 2010-06-30 02:32:04