java操作word(内部资料)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 移动的距离