首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java 操作 word文档的有关问题

2012-02-01 
java 操作 word文档的问题我下了一些代码,是java操作word的内容,调试的时候总出错.除了下面的问题,还想问,

java 操作 word文档的问题
我下了一些代码,是java操作word的内容,调试的时候总出错.   除了下面的问题,还想问,jacbo1.7是不是必须配合jdk1.3使用,我的jdk是1.4

ActiveXComponent   component   =   new   ActiveXComponent( "Word.Application ");
String   inFile   =   "c:\\t.doc ";
String   tpFile   =   "c:\\t.htm ";
String   otFile   =   "d:\\t.xml ";
boolean   flag   =   false;
try   {
component.setProperty( "Visible ",   new   Variant(false));
Dispatch   wordacc   =   component.getProperty( "document.   ").toDispatch();
//请问上面这句是什么意思呀!
Dispatch   wordfile   =   Dispatch.invoke(wordacc, "Open ",   Dispatch.Method,
new   Object[]{inFile,new   Variant(false),   new   Variant(true)},
new   int[1]   ).toDispatch();
//这句又是什么意思
Dispatch.invoke(wordfile, "SaveAs ",   Dispatch.Method,   new   Object[]{tpFile,new   Variant(8)},   new   int[1]);
Variant   f   =   new   Variant(false);
Dispatch.call(wordfile,   "Close ",   f);
flag   =   true;
}   catch   (Exception   e)   {
e.printStackTrace();
}   finally   {
component.invoke( "Quit ",   new   Variant[]   {});
}


[解决办法]
不是jdk版本的问题!我的jacob弄丢了不知道什么版本!
这是操作word并转换为txt文件的,你看看
package com.szallcom.tools;
import com.jacob.com.*;
import com.jacob.activeX.*;
import java.io.*;

//取得指定目录下面所有的doc文件名称
public class WordToTxt
{
//------------------------------------------

//------------------------------------------
public void change(String paths, String savepaths)
{

File d = new File(paths);
//取得当前文件夹下所有文件和目录的列表
File lists[] = d.listFiles();
//String pathss = new String( " ");

//对当前目录下面所有文件进行检索
for(int i = 0; i < lists.length; i ++)
{
if(lists[i].isFile())
{
String filename = lists[i].getName();
String filetype = new String( " ");
//取得文件类型
filetype = filename.substring((filename.length() - 3), filename.length());

//判断是否为doc文件
if(filetype.equals( "doc "))
{
System.out.println( "当前正在转换...... ");
//打印当前目录路径
System.out.println(paths);
//打印doc文件名
System.out.println(filename.substring(0, (filename.length() - 4)));

ActiveXComponent app = new ActiveXComponent( "Word.Application ");//启动word

String docpath = paths + filename;
String htmlpath = savepaths + filename.substring(0, (filename.length() - 4));

String inFile = docpath;
//要转换的word文件
String tpFile = htmlpath;
//HTML文件

boolean flag = false;

try
{
app.setProperty( "Visible ", new Variant(false));
//设置word不可见
Dispatch docs = app.getProperty( "Documents ").toDispatch();
Dispatch doc = Dispatch.invoke(docs, "Open ", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(true)}, new int[1]).toDispatch();
//打开word文件
Dispatch.invoke(doc, "SaveAs ", Dispatch.Method, new Object[]{tpFile,new Variant(2)}, new int[1]);
//作为html格式保存到临时文件
Variant f = new Variant(false);


Dispatch.call(doc, "Close ", f);
flag = true;
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
app.invoke( "Quit ", new Variant[] {});
}
System.out.println( "转化完毕! ");
}
}
else
{
// pathss = paths;
//进入下一级目录
// pathss = pathss + lists[i].getName() + " ";
//递归遍历所有目录
// change(pathss, savepaths);
}
}

}
//------------------------------------------
//方法原型: main(String[] args)
//功能描述: main文件
//输入参数: 无
//输出参数: 无
//返 回 值: 无
//其它说明: 无
//------------------------------------------
/*public static void main(String[] args)
{

String paths = new String( "E:\\222.192.55.17\\ ");
String savepaths = new String ( "E:\\222.192.55.17\\ ");
WordToTxt a=new WordToTxt();
a.change(paths, savepaths);



}*/
}

热点排行