一、环境配置

1)、在项目中引入jacob.jar

2)、将jacob-1.17-M2-x64.dll和jacob-1.17-M2-x86.dll文件放在jdk的path目录下面,通过System.getProperty("java.library.path");可以看到path路径,或者直接放到jdk/bin、jre/bin、system32/system64下面都放一份,总能找得到的。

二、案例代码

public class JacobTest {public static void main(String[] args) {System.getProperty("java.library.path");//1、初始化com线程ComThread.InitSTA();//2、创建应用程序对象ActiveXComponent wordApp = new ActiveXComponent("Word.Application");//wordwordApp.setProperty("Visible", new Variant(false));//设置应用操作是文档不在明面上显示,只在后台静默处理。Dispatch document = wordApp.getProperty("Documents").toDispatch();Dispatch doc = Dispatch.call(document, "Open",new Variant("D:\\test\\test.doc")).toDispatch();//2、把插入点移动到文件首位置Dispatch.call(Dispatch.get(wordApp, "Selection").toDispatch(), "HomeKey", new Variant(6));//3、创建表表格Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();Dispatch range = Dispatch.get(Dispatch.get(wordApp, "Selection").toDispatch(), "Range").toDispatch();Dispatch newTable = Dispatch.call(tables, "Add", range,new Variant(6), new Variant(5)).toDispatch();//5行6列Dispatch.call(Dispatch.get(wordApp, "Selection").toDispatch(), "MoveRight");//4、获取表格单元格,插入图片Dispatch image = Dispatch.get(Dispatch.get(wordApp, "Selection").toDispatch(),  "InLineShapes" ).toDispatch();Dispatch table = Dispatch.call(tables,  "Item" ,  new  Variant(1)) .toDispatch();//获取第一个表Dispatch cell = Dispatch.call(table,  "Cell" ,  new  Variant(0),//0行new  Variant(0)).toDispatch();//光标移动到(0,0)单元格Dispatch.call(cell,  "Select" );//选中单元格D:\test\2.pngDispatch.call(image,  "AddPicture" , "D:\\test\\2.png");//5、操作文档,每页插入一个图片,并调整大小和位置/*for(int i = 0; i < 2;i++){Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch();Dispatch inLineShapes = Dispatch.get(selection, "InLineShapes").toDispatch();Dispatch picture = Dispatch.call(inLineShapes, "AddPicture", "D:\\test\\2.png").toDispatch();//选中图片Dispatch.call(picture, "Select");//设置宽度高度Dispatch.put(picture, "Width", new Variant(600));Dispatch.put(picture, "Height", new Variant(300));//设置图片相对左上角偏移位置selection = Dispatch.get(wordApp, "Selection").toDispatch();Dispatch shapeRange = Dispatch.get(selection, "ShapeRange").toDispatch();Dispatch.put(shapeRange, "Left", new Variant(1000));Dispatch.put(shapeRange, "Top", new Variant(1000));//翻到下一页Dispatch browser = Dispatch.get(wordApp, "Browser").toDispatch();Dispatch.call(browser, "Next");}*///6、获取文档页数/* Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch();//如果调用方法或者属性要得到某个值的话,直接tostring或者别的就可以了String pages = Dispatch.call(selection, "Information", new Variant(4)).toString();System.out.println("文档页数:"+pages);*///保存Dispatch.call(doc, "Save");//退出wordApp.invoke("Quit", new Variant[] {});//关闭com线程ComThread.Release();}}

结果:

Jacob操作Word文档插入表格并表格中插入图片案例相关推荐

  1. java使用jacob操作word文档

    ava使用jacob操作word文档 java调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office ...

  2. Jacob操作Word文档转换-XXOO

    前言 JACOB一个Java-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32程序库. 一.准备 <!--添加本地的jacob.jar包--><depe ...

  3. 利用jacob操作word文档

    介绍一下jacob: jacob是在java与微软的com组件之间的桥梁,通过使用jacob自带的dll动态链接库通过jni的方式实现了在sun java平台上的程序对com调用! 下载地址: htt ...

  4. 使用JACOB操作word文档并实现打印

    由于项目需要,需要在后台对word文档中的书签进行重新填值,并进行打印.一开始已经使用Spire.Doc for Java实现了这个效果,但是这个插件是收费的,公司不想买,于是就在网上找了一段时间开源 ...

  5. docx4j操作word文档之生成页码、合并多个文档

    docx4j操作word文档: 动态生成表格行数并填充数据 单元格内填充图片 合并多个word文档(包含页码,纸张方向等等) 1.动态生成表格行数并填充数据 首先创建模板文件.docx,如图: 代码如 ...

  6. Python 操作Word文档插入图片和表格实例演示

    Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...

  7. python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示

    前言P6Q免费资源网 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码P6Q免费资源网 实例代码: ...

  8. python打开word并插入图片_Python操作word文档插入图片和表格的实例演示

    前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: U ...

  9. php怎么在表格里插图片,Python操作word文档插入图片和表格的实例演示

    今天带来Python操作word文档插入图片和表格的实例演示教程详解 前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多 ...

最新文章

  1. 挂载失败-日志中显示僵尸pod的问题
  2. 这代码她不美吗?——试题 基础练习 十六进制转八进制
  3. Web前端开发笔记——第二章 HTML语言 第一节 标签、元素、属性
  4. springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池
  5. Spring整合基础
  6. 浅谈 CSRF 攻击方式
  7. 阿里宜搭发布专有云版本,基于云原生的应用构建PaaS平台
  8. 每日一则----算法----二分查找法
  9. python/正则 从字符串中提取数字
  10. 2017 05 23 Python求1000内的完全数
  11. 结构体中操作c语言,C语言中结构体的操作
  12. 图像处理-绘制直方图
  13. 获取音频频响和失真_专业音响设备_音频功放失真的四大要点及改善方法
  14. 通俗易懂理解几何光学(三)平面与平面系统
  15. 简单集成华为PUSH
  16. matlab中 %d,%f,%c,%s代表的输出格式
  17. Kubernetes--Pod的DNS域名和相关特性
  18. scala类的介绍与操作02
  19. 获取计算机内存镜像文件,Dump镜像内存提取工具
  20. mysql diff函数_MYSQL中 的datediff、timestampdiff函数

热门文章

  1. 绘图工具-PlantUML
  2. 软件测试职业发展三步曲之一
  3. VBA遍历文件夹下的所有文件
  4. 论文Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems阅读笔记
  5. error C2059: 语法错误:“,”
  6. freescale R10 ipu lib 分析 - ipu_device.c
  7. C#程序打印AX2012的SSRS
  8. Java File文件操作
  9. 小外包公司的商业运作模式,希望大家多补充补充!
  10. 初识Mongdb之数据查询篇(二)