转载于:http://gingguoqiu.iteye.com/blog/1218119

awin-2.0-alpha1.zip解压得到jawin.dll,jawin.jar

jawin.dll放在C:\WINDOWS\system32下

jawin.jar放在项目的lib下

可以使用包中的jawinBrowser.jar,解析MSWORD.OLB(word版本不同,名称稍有不同),获得方法xml文件。

测试代码

package tdh.jawin;import org.jawin.COMException;
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;public class WordComm {public void newWord() {try {// 初始化Ole32.CoInitialize();// 创建word对象DispatchPtr app = new DispatchPtr("Word.Application");// 使word 可见app.put("Visible", true);// 获得document对象集合DispatchPtr docs = (DispatchPtr) app.get("Documents");// 新增一个文档DispatchPtr doc = (DispatchPtr) docs.invoke("Add");// 激活当前文档app.invoke("Activate");// 取得Font对象,设置字体,设置字号DispatchPtr objTextFont = (DispatchPtr) ((DispatchPtr) doc.get("Content")).get("Font");objTextFont.put("Name", "黑体");objTextFont.put("Size", "12");// 取得Selection对象DispatchPtr docSelection = (DispatchPtr) app.get("Selection");// 取得段落对象DispatchPtr paragraphFormat = (DispatchPtr) docSelection.get("ParagraphFormat");paragraphFormat.put("Alignment", "0");docSelection.invoke("TypeText", "第一行文字...");insertRowBreak(docSelection);docSelection.invoke("TypeText", "TDHTEXT...");// 新段落,设置段落的对齐方式为居中docSelection.invoke("TypeParagraph");paragraphFormat = (DispatchPtr) docSelection.get("ParagraphFormat");paragraphFormat.put("Alignment", "1");docSelection.invoke("TypeText", "第二行图片...");insertRowBreak(docSelection);docSelection.invoke("TypeText", "TDHIMG");// 新段落,添加表格docSelection.invoke("TypeParagraph");DispatchPtr range = (DispatchPtr) docSelection.get("Range");DispatchPtr tables = (DispatchPtr) doc.get("Tables");tables.invokeN("Add", new Object[] { range, new Integer(3), new Integer(3) });// 三行,三列// 获取刚添加的表格,设置表格为网格型(word2000没用,word2003有用)// DispatchPtr currentTable = (DispatchPtr) tables.invokeN("Item", new// Object[] { new Integer(1) });// currentTable.put("Style", "网格型");// 重新设置选取位置为文档内容的最后,这样后面的操作就会不会在表格里操作DispatchPtr cont = (DispatchPtr) doc.get("Content");docSelection.invokeN("SetRange", new Object[] { cont.get("End"), cont.get("End") });// 移动到最后docSelection.invoke("EndKey", 6);// 移动到最前docSelection.invoke("HomeKey", 6);// 移动到最前docSelection.invoke("HomeKey", 6);while (find(docSelection, "TDHTEXT"))docSelection.put("Text", "替换后的文字");String path = WordComm.class.getResource("").getPath();if (path != null && path.length() > 0) {path = path.substring(1);}System.out.println("class所在地址:" + path);// 移动到最前docSelection.invoke("HomeKey", 6);while (find(docSelection, "TDHIMG")) {insertImg(docSelection, path + "1.png");}// 移动到最后docSelection.invoke("EndKey", 6);// 插入分页符insertPageBreak(docSelection);// 插入文件insertFile(docSelection, path + "1.rtf");// 保存文档,关闭当前文档,退出Worddoc.invoke("SaveAs", path +"jawin操作后的文档.doc");doc.invoke("Close");app.invoke("Quit");Ole32.CoUninitialize();// 释放对象} catch (Exception e) {e.printStackTrace();}}/*** 打开文档*/public static DispatchPtr openWord(String path) {try {Ole32.CoInitialize();DispatchPtr app = new DispatchPtr("Word.Application");app.put("Visible", true);DispatchPtr docs = (DispatchPtr) app.get("Documents");DispatchPtr doc = (DispatchPtr) docs.invoke("Open", path);app.invoke("Activate"); // 激活当前文档Ole32.CoUninitialize();return doc;} catch (Exception e) {e.printStackTrace();}return null;}/*** 查找*/public boolean find(DispatchPtr docSelection, String findStr) throws COMException {DispatchPtr docFind = (DispatchPtr) docSelection.get("Find");return (Boolean) docFind.invokeN("Execute", new Object[] { findStr, new Boolean(true), new Boolean(true), new Boolean(false), new Boolean(false), new Boolean(false), new Boolean(true) });}/*** 插入图片*/public void insertImg(DispatchPtr docSelection, String imgPath) throws COMException {DispatchPtr inlineShapes = (DispatchPtr) docSelection.get("InlineShapes");inlineShapes.invokeN("AddPicture", new Object[] { imgPath, new Boolean(false), new Boolean(true) });}/*** 插入文件*/public void insertFile(DispatchPtr docSelection, String path) throws COMException {docSelection.invokeN("insertFile", new Object[] { path, "", new Boolean(false), new Boolean(false), new Boolean(false) });}/*** 插入分页符*/public void insertPageBreak(DispatchPtr docSelection) throws COMException {docSelection.invoke("InsertBreak", 7);}/*** 插入换行符*/public void insertRowBreak(DispatchPtr docSelection) throws COMException {docSelection.invoke("InsertBreak", 11);}public static void main(String[] args) {new WordComm().newWord();}}

感谢以下网络资源:

http://blog.csdn.net/luzuobin/article/details/2779029

jawin操作word相关推荐

  1. python操作word文档(python-docx)

    python操作word文档(python-docx) 1. 效果图 1.1 python-docx文档标题段落(等级.加粗.斜体.居中)效果图 1.2 python-docx字体(加粗.斜体.居中. ...

  2. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  3. python在windows下操作word的方法的代码

    把写内容过程经常用的一些内容收藏起来,下边内容内容是关于python在windows下操作word的方法的内容,希望能对各位朋友有些好处. import win32com from win32com. ...

  4. python入门教程2word-使用python操作word

    前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 该代码记录了对word ...

  5. python入门教程2word-python操作word入门

    1.安装pywin32 http://sourceforge.net/projects/pywin32 在files里去找适合你的python版本.截止此文,最新版本是pywin32-219快捷路径: ...

  6. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  7. java word表格_java操作word的表格

    java操作word的表格 最近项目中需要把提交的页面表单的数据动态写在word模板中,简单的写了个工具类.里面有怎眼操作word 中表格的内容,可以在word中已有的表格后面添加行并且可以增加内容. ...

  8. ASP.NET操作Word文档(转)

    ASP.NET操作Word文档(转) 操作WORD配置说明 引入:Word的对象库文件"MSWORD.OLB"(word 2000为MSWORD9.OLB) 1.运行Dcomcnf ...

  9. word python 域 操作_python实现在windows下操作word的方法

    本文实例讲述了python实现在windows下操作word的方法.分享给大家供大家参考.具体实现方法如下: import win32com from win32com.client import D ...

最新文章

  1. 整合 Google 开源 C++ 代码
  2. wpcap包含目录如何在2010中进行全局设置
  3. PHP内核探索:新垃圾回收机制说明
  4. Oracle在Solaris下的机能与调整简介
  5. 如何更好使用 ng-zorro-antd 图标
  6. C获取当前Linux登录的用户名
  7. python dateutil_安装python dateutil
  8. 各国语言缩写以及国际域名缩写
  9. 2019ug最新版本是多少_UG在2019年隆重发布最新版本,让你我都想不到的是..........
  10. 数据可视化1—蒙特卡罗光线追踪
  11. arcgis10之获取面要素四至点坐标
  12. gst-launch-1.0用法小记
  13. 2008年8月27号,星期三,晴。锲而舍之,朽木不折;锲而不舍,金石可镂。 ——《荀子•劝学》2008年8月27号,星期三,晴。
  14. c语言父进程创建孙进程,进程的创建与并发的执行-带答案版.doc
  15. 呆萌却实际可怕的动物:蛇鹫会踢腿 大熊猫攻击凶猛
  16. 加息+四巫日铁矿石大跌,棕榈油认沽最高30倍,豆一09-01继续反套2022.6.15
  17. 当你已经25:男生女生都该看
  18. 无线网经常短连接服务器,我家的无线网不稳定,经常掉线,每次玩游戏到加载的时候,总会出现:”无法连接服务器,请检查您的网络“...
  19. 聊聊我的 Pandas 学习经历及动手实践
  20. html代码width什么意思,width:100% 啥意思呢,在什么情况下使用?

热门文章

  1. 易语言 修改代码编辑窗口的字体格式大小 的方法
  2. 用JS制作《飞机大作战》游戏_第4讲(创建敌方飞机、敌方飞机发射子弹、玩家子弹击中敌方小飞机,小飞机死亡)-陈远波...
  3. HTML实现旋转太极图
  4. 最新WordPress壁纸小程序源码+精美暗黑UI系列
  5. python编写交互界面设计_Python 如何编写交互界面?
  6. 微信搜题公众号免费搭建教学
  7. 自动驾驶+车联网应用落地 引领智慧出行新趋势
  8. 【C语言】关键字的补充
  9. 文件预览:Markdown文件预览
  10. 我想重拾昔日的情怀,晚了吗?