代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
Jacob替换word中指定文本
作者:
dongzhouzhou
/ 发布于
2014/3/27
/
499
public class JacobWord { private boolean saveOnExit; //word文档 Dispatch doc = null; //word运行程序对象 static ActiveXComponent word; //所有word文档 static Dispatch documents; static{ word = new ActiveXComponent("Word.Application"); word.setProperty("Visible", new Variant(false)); documents = word.getProperty("Documents").toDispatch(); } //构造函数 public JacobWord(){ saveOnExit = true; } /** * 打开文件 * @param documents * @param inputDocPath * @return */ private Dispatch open(Dispatch documents,String inputDocPath){ return Dispatch.call(documents,"Open",inputDocPath).toDispatch(); } /** * 选定内容 * @param word * @return */ private Dispatch select(ActiveXComponent word){ return word.getProperty("Selection").toDispatch(); } /** * 把插入点移动到文件首位置 * @param selection */ private void moveStart(Dispatch selection){ Dispatch.call(selection, "HomeKey",new Variant(6)); } /** * 从选定内容或插入点开始查找文本 * @param selection 选定内容 * @param toFindText 要查找的文本 * @return true:查找到并选中该文本;false:未查找到文本。 */ private boolean find(Dispatch selection,String toFindText){ //从selection所在位置开始查询 Dispatch find = Dispatch.call(selection, "Find").toDispatch(); //设置要查找的内容 Dispatch.put(find, "Text", toFindText); //向前查找 Dispatch.put(find, "Forward", "True"); //设置格式 Dispatch.put(find,"format","True"); //大小写匹配 Dispatch.put(find, "MatchCase", "True"); //全字匹配 Dispatch.put(find, "MatchWholeWord", "True"); //查找并选中 return Dispatch.call(find, "Execute").getBoolean(); } /** * 把选定内容替换为设定文本 * @param selection * @param newText */ private void replace(Dispatch selection,String newText){ Dispatch.put(selection, "Text", newText); } /** * 全局替换 * @param selection * @param oldText * @param replaceObj */ private void replaceAll(Dispatch selection,String oldText,Object replaceObj){ moveStart(selection); String newText = (String)replaceObj; while(find(selection,oldText)){ replace(selection,newText); Dispatch.call(selection, "MoveRight"); } } /** * 打印 * @param document */ private void print(Dispatch document){ Dispatch.call(document, "PrintOut"); } /** * 保存文件 * @param word * @param outputPath */ private void save(ActiveXComponent word,String outputPath){ Dispatch.call(Dispatch.call(word, "WordBasic").getDispatch(), "FileSaveAs",outputPath); } /** * 关闭文件 * @param doc */ private void close(Dispatch doc){ Dispatch.call(doc, "Close",new Variant(true)); } /** * 保存打印doc文档 * @param inputDocPath * @param outPutDocPath * @param data * @param isPrint */ public void saveDoc(String inputDocPath,String outPutDocPath,HashMap data,boolean isPrint){ //初始化com的线程 ComThread.InitSTA(); //word运行程序对象 ActiveXComponent word = new ActiveXComponent("Word.Application"); //文档对象 Dispatch wordObject = (Dispatch) word.getObject(); //设置属性 Variant(true)表示word应用程序可见 Dispatch.put((Dispatch)wordObject,"Visible", new Variant(false)); //word所有文档 Dispatch documents = word.getProperty("Documents").toDispatch(); //打开文档 Dispatch document = this.open(documents,inputDocPath); Dispatch selection = this.select(word); Iterator keys = data.keySet().iterator(); String oldText; Object newValue; while(keys.hasNext()){ oldText = (String)keys.next(); newValue = data.get(oldText); this.replaceAll(selection, oldText, newValue); } //是否打印 if(isPrint){ this.print(document); } this.save(word,outPutDocPath); this.close(document); word.invoke("Quit", new Variant[0]); //关闭com的线程 ComThread.Release(); } }
试试其它关键字
替换word
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dongzhouzhou
贡献的其它代码
(
5
)
.
给数字左边补0
.
遍历实体类的属性和数据类型以及属性值
.
Jacob替换word中指定文本
.
List转化成String数组
.
正确遍历删除List中的元素
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3