2010-06-30 89 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

我希望这有助于你

相关问题