Jacob1.11版本下载地址:
http://nchc.dl.sourceforge.net/sourceforge/jacob-project/jacob_1.11.1.zip
下载完以后,解压缩出来,把里面的jacob.jar添加到classpath中
把jacob.dll放入windows/system32下面
添加到系统环境变量中:右键我的电脑->属性->高级->系统变量
类一:WordService.java
来源:(http://blog.sina.com.cn/s/blog_48ca8187010007wy.html) - 采用Jacob生成Word文档_别问我是谁_新浪博客
import com.jacob.activeX.*;
import com.jacob.com.*;
/**
* 采用Jacob1.11操作Word
*
* @author liuxt
*
*/
public class WordService extends java.awt.Panel {
private static final long serialVersionUID=-1L;
public ActiveXComponent MsWordApp = null;
private Dispatch document = null;
public WordService() {
super();
}
public void openWord(boolean makeVisible) {
//Open Word if we\'ve not done it already
if (MsWordApp == null) {
MsWordApp = new ActiveXComponent("Word.Application");
}
//Set the visible property as required.
Dispatch.put(MsWordApp, "Visible",
new Variant(makeVisible));
}
/**
* 打开已知的word文档
* @param markVisible 可视化状态
* @param docPath 文档路径
*/
public void openWord(boolean markVisible,final String docPath) {
if (MsWordApp == null) {
MsWordApp = new ActiveXComponent("Word.Application");
}
//Set the visible property as required.
Dispatch.put(MsWordApp, "Visible", new Variant(markVisible));
Dispatch docs = MsWordApp.getProperty("Documents").toDispatch();
document = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{docPath}, new int[1]).toDispatch();
}
/**
* 创建Word文档
*
*/
public void createNewDocument() {
//Find the Documents collection object maintained by Word
Dispatch documents = Dispatch.get(MsWordApp,"Documents").toDispatch();
//Call the Add method of the Documents collection to create
//a new document to edit
document = Dispatch.call(documents,"Add").toDispatch();
}
/**
* 插入文本
* @param textToInsert
*/
public void insertText(String textToInsert) {
// Get the current selection within Word at the moment. If
// a new document has just been created then this will be at
// the top of the new doc
Dispatch selection = Dispatch.get(MsWordApp,"Selection").toDispatch();
//Put the specified text at the insertion point
Dispatch.put(selection,"Text",textToInsert);
}
public void saveFileAs(String filename) {
Dispatch.call(document,"SaveAs",filename);
}
public void printFile() {
//Just print the current document to the default printer
Dispatch.call(document,"PrintOut");
}
/**
* 查找替换文本
* @param searchText 需要查找的关键字
* @param replaceText 要替换成的关键字
*/
public void searchReplace(final String searchText,final String replaceText) {
Dispatch selection=MsWordApp.getProperty("Selection").toDispatch();
Dispatch find = ActiveXComponent.call(selection, "Find").toDispatch();
//查找什么文本
Dispatch.put(find, "Text", searchText);
//替换文本
Dispatch.call(find,"ClearFormatting");
Dispatch.put(find, "Text", searchText);
Dispatch.call(find, "Execute");
Dispatch.put(selection, "Text", replaceText);
}
/**
* 把指定的值设置到指定的标签中去
* @param bookMarkKey
*/
public void setBookMark(final String bookMarkKey,final String bookMarkValue) {
Dispatch activeDocument=MsWordApp.getProperty("ActiveDocument").toDispatch();
Dispatch bookMarks = ActiveXComponent.call(activeDocument, "Bookmarks").toDispatch();
boolean bookMarkExist1=Dispatch.call(bookMarks,"Exists",bookMarkKey).getBoolean();
if(bookMarkExist1==true){
Dispatch rangeItem = Dispatch.call(bookMarks, "Item",bookMarkKey).toDispatch();
Dispatch range = Dispatch.call(rangeItem, "Range").toDispatch();
//取标签的值
//String bookMarkValue=Dispatch.get(range,"Text").toString();
//bookMarkValue="test";
if(bookMarkValue!=null){
Dispatch.put(range, "Text",new Variant(bookMarkValue));
}
}else{
System.out.println("not exists bookmark!");
}
}
/**
* 保存Word文档到指定的目录(包括文件名)
* @param filePath
*/
public void saveWordFile(final String filePath) {
//保存文件
Dispatch.invoke(document, "SaveAs", Dispatch.Method, new Object[] {filePath, new Variant(0)} , new int[1]);
//作为word格式保存到目标文件
Variant f = new Variant(false);
Dispatch.call(document, "Close", f);
}
public void closeDocument() {
// Close the document without saving changes
// 0 = wdDoNotSaveChanges
// -1 = wdSaveChanges
// -2 = wdPromptToSaveChanges
Dispatch.call(document, "Close", new Variant(0));
document = null;
}
public void closeWord() {
Dispatch.call(MsWordApp,"Quit");
MsWordApp = null;
document = null;
}
}
类二:WordExample.java
import com.suypower.yxsj.common.WordService;
public class WordExample {
public static void main(String[] args) {
WordService word=new WordService();
word.openWord(true);
word.createNewDocument();
word.insertText("Hello word.");
word.searchReplace("Hello", "哈喽");
word.setBookMark("bookMarkKey","bookMarkValue");
//word.MsWordApp.setProperty("UserName","xiantongsky");
//word.saveWordFile("D:/xiantong.doc");
}
}
分享到:
相关推荐
jacob 导出word 整理 ............
任务目的 1自动生成word文档目录。 用例测试操作步骤 在一个word文档的第二页填写占位符: {目录}保存。调用程序读取目标文档,自动根据标题生成目录到{目录}位置。
Jacob操作word 文档的方法集!(含创建目录),使用的Jacob版本是1.5
通过freemarker和jacob生成合同word文档html生成word文档(word模板类型的资源)压缩包里有有详细的生成方式,里面有两种生成方式,一种是用html生成。另一种则是后台生成 1、第一步通过office软件将word文档命名好...
java项目, 直接导入eclipse里面或者myeclipse里面就可以运行....通过jacob插件,通过word模板自动填充相应的数据,并且产生文件,为了解决有的tomcat下会乱码, 生成完成之后会转码一下, 解决了中文乱码问题.
Jacob控制word文档,用java组件生成word
基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring ...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
资源中为Jacob根据模版动态生成word文档的示例工程,有整个的完整例子,代码注释;包含jacob的工具、文档模版等内容,下载后导入可直接运行,绝对物有所值,希望能帮到你们!谢谢!
SSM+freemaker+jacob实现生成word文档并转换为PDF 另一个是错的
完整项目,直接可以导入到myeclipse中运行,代码有详细注释,在readme.txt文件里面有注意事项。
完整项目,直接可以导入到myeclipse中运行,代码有详细注释,在readme.txt文件里面有注意事项。
在项目中,会遇到各种需求,此资源是基于Java-Jacob生成带有图片的word文档,经过网搜和各种资源拼接整合,此功能已正常实现,此外,压缩包中还有word文档说明,你可以很好的实现!
通过目录找出对应的标题, 通过两个标题的位置得到之间的段落(得到了段落Range,但是我只处理了text,没有处理table和picture,这些都可以从Range中取出)
将该文件复制到C:\Windows\SysWOW64中,并在C:\Windows\SysWOW64\config\systemprofile建立Desktop文件夹
使用jacob通过word样表生成制式表格,包括文字的替换,图片的插入以及动态在word表格中追加数据,将生成的word文档转位pdf格式。
通过使用 Jacob 库,可以轻松地操作 Word 文档,自动追加表格内容,生成 Word 文档,添加图片等。 Jacob 库提供了强大的功能,可以满足各种文档操作需求。 在实际应用中, Jacob 库可以用于自动化生成文档,例如...
windows下,使用jacob调用word,直接可以使用java代码就可以生成word文档。
java_jacob_操作word_文档_进行写操作_如生成表格_添加_图片