永发信息网

求问JAVA怎么读取DOC文件

答案:2  悬赏:0  手机版
解决时间 2021-02-08 10:03
求问JAVA怎么读取DOC文件
最佳答案
用jacob. 其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。 jacob下载:

下载了jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个例子: import java.io.File; import com.jacob.com.*; import com.jacob.activeX.*; public class FileExtracter{ public static void main(String[] args) { ActiveXComponent app = new ActiveXComponent("Word.Application"); String inFile = "c:\\test.doc"; String tpFile = "c:\\temp.htm"; String otFile = "c:\\temp.xml"; boolean flag = false; try { app.setProperty("Visible", new Variant(false)); Object docs = app.getProperty("Documents").toDispatch(); Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch(); Dispatch.invoke(doc,"SaveAs", Dispatch.Method, new Object[]{tpFile,new Variant(8)}, new int[1]); Variant f = new Variant(false); Dispatch.call(doc, "Close", f); flag = true; } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); } } } 2。
全部回答
word有微软的专用格式,如果要读取其内容,可以使用jar包,如下: 1。用jacob. 其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。 jacob下载: http://www.matrix.org.cn/down_view.asp?id=13 下载了jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个例子: import java.io.file; import com.jacob.com.*; import com.jacob.activex.*; public class fileextracter{ public static void main(string[] args) { activexcomponent app = new activexcomponent("word.application"); string infile = "c:\\test.doc"; string tpfile = "c:\\temp.htm"; string otfile = "c:\\temp.xml"; boolean flag = false; try { app.setproperty("visible", new variant(false)); object docs = app.getproperty("documents").todispatch(); object doc = dispatch.invoke(docs,"open", dispatch.method, new object[]{infile,new variant(false), new variant(true)}, new int[1]).todispatch(); dispatch.invoke(doc,"saveas", dispatch.method, new object[]{tpfile,new variant(8)}, new int[1]); variant f = new variant(false); dispatch.call(doc, "close", f); flag = true; } catch (exception e) { e.printstacktrace(); } finally { app.invoke("quit", new variant[] {}); } } } 2。用apache的poi来抽取word,excel。 poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你: 下载经过封装后的poi包: http://www.matrix.org.cn/down_view.asp?id=14 下载之后,放到你的classpath就可以了,下面是如何使用它的一个例子: import java.io.*; import org.textmining.text.extraction.wordextractor; public class pdfextractor { public pdfextractor() { } public static void main(string args[]) throws exception { fileinputstream in = new fileinputstream ("c:\\a.doc"); wordextractor extractor = new wordextractor(); string str = extractor.extracttext(in); system.out.println("the result length is"+str.length()); system.out.println("the result is"+str); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
高达中战舰散布米洛粒子有什么用
赵静副食在什么地方啊,我要过去处理事情
我为什么对老公爱发脾气。他做什么都不对
某5层砖混结构建筑,外墙结构外边线的尺寸为1
动力鸡车地址在哪,我要去那里办事
四表X检验中X>X,可认为A.两样本率不同B.两
成都明悦大酒店在哪里啊,我有事要去这个地方
雷克萨斯es350发动机故障灯,防侧滑等,vsc同时
【高分子材料的生物相容性指什么,具有生物相
左脚面麻是怎么回事
净衣坊高质洗衣在什么地方啊,我要过去处理事
三星SCX—4100黑白三合一 一体 激光打印机如
我对水的感受
我在郑州上班,所以在郑州交的公积金但是我在
南华小区6号我想知道这个在什么地方
推荐资讯
简新概念专业写真地址有知道的么?有点事想过
顾家燃气(南新东路316)地址在什么地方,想过
张继科喜欢谁
今年顺丰快递放假安排是????
拳王阿里拳击生涯经典的视频,业余、职业拳击
裸车10万!
二手苹果手机可以买吗?买了会怎么样??
卡罗拉的音响好还是雷凌的音响好?
努比亚z9mini手机坏了之后如何倒出数据
小高考没过能上大学吗
数学函数…………求解…………急用定义在R上
QQ飞车雷诺加悬挂加多少合适
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?