java操作word(内部资料)

  • 格式:doc
  • 大小:205.50 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA操作word

Java操作Microsoft Word之jacob(1)

现在我们一起来看看,用J1ava如何操作Microsoft Word。

jacob,官网是danadler./jacob 这是一个开源的工具。最新版本1.7

官方的解释是:The JACOB Project: A JAva-COM Bridge

这是官方对下载文件的说明:

jacob.jar: a JAR file for the java classes which you must add to your CLASSPATH. The package names replace .ms with .jacob (for example .ms..Variant maps

to .jacob..Variant.

jacob.dll: a small Win32 DLL which you must add to your PATH.

samples: provided in Java source and compiled form to demonstrate various features of the product. In particular, a set of wrapper classes for Microsoft® ADO are provided as samples.

开发环境:

JDK 1.6

MyEclipse Enterprise Workbench Version: 7.0 Milestone-1

Tomcat 5.5.27

现在MyEclipse中新建一个项目jacob,将jacob的jar包放到该项目的类库中。

我的jacob版本是1.14.3 。

下面这一步非常重要,就是拷贝jacob目录中jacob-1.14.3-x86.dll文件到系统环境变量目录中一般情况就放在当前jdk中bin目录下。

这里有一个MSWordManager 类,是jacob官方发布的工具类,里面有大多数Java操作MS Office的工具。

package .test;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import .jacob.activeX.ActiveXComponent;

import .jacob..Dispatch;

import .jacob..Variant;

public class MSWordManager {

// word文档

private Dispatch doc;

// word运行程序对象

private ActiveXComponent word;

// 所有word文档集合

private Dispatch documents;

// 选定的围或插入点

private Dispatch selection;

private boolean saveOnExit = true;

/** *//**

*

* param visible 为true表示word应用程序可见

*/

public MSWordManager(boolean visible) {

if (word == null) {

word = new

ActiveXComponent("Word.Application");

word.setProperty("Visible", new

Variant(visible));

}

if (documents == null)

documents =

word.getProperty("Documents").toDispatch();

}

/** *//**

* 设置退出时参数

*

* param saveOnExit boolean true-退出时保存文件,false-退出时不保存文件

*/

public void setSaveOnExit(boolean saveOnExit) {

this.saveOnExit = saveOnExit;

}

/** *//**

* 创建一个新的word文档

*

*/

public void createNewDocument() {

doc = Dispatch.call(documents, "Add").toDispatch();

selection = Dispatch.get(word,

"Selection").toDispatch();

}

/** *//**

* 打开一个已存在的文档

*

* param docPath

*/

public void openDocument(String docPath) {

closeDocument();

doc = Dispatch.call(documents, "Open",

docPath).toDispatch();

selection = Dispatch.get(word,

"Selection").toDispatch();

}

/** *//**

* 把选定的容或插入点向上移动

*

* param pos 移动的距离