通常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