如何通过JACOB将VB代码成功迁移至Java环境?

2026-05-06 13:121阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计421个文字,预计阅读时间需要2分钟。

如何通过JACOB将VB代码成功迁移至Java环境?

我尝试使用JACOB和JAVA从模板创建Word文档。似乎在JACOB上找不到任何能处理文档的接口。有人能解释一下Dispatch的工作原理(.get | .put | .toDispatch)吗?我想将以下代码转换为JACOB:

Selection.Move

我试图通过JACOB / JAVA从模板创建word文档.我似乎无法在JACOB上找到任何体面的文档.有人可以解释一下Dispatch的工作原理(.get | .put | .toDispatch)吗?我想将以下代码转换为JACOB:

Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend Selection.Cells.Merge

我试过了:

Dispatch.call(oSelection, "MoveRight", 2, "Extend"); Dispatch.call(oSelection, "Merge").toDispatch();

但它肯定不起作用.

如何通过JACOB将VB代码成功迁移至Java环境?

任何帮助,将不胜感激.

雅各布没有任何问题,它的工作方式与广告一样.

首先,您必须找到Word 2003的对象引用,您似乎正在使用它
其原因在于,当使用命名参数时,可以省略一些可选参数,并且可以不按顺序指定一些参数.所以我首先需要确认Selection.MoveRight的签名.以下是MoveRight:msdn.microsoft.com/en-us/library/aa212388(v=office.11).aspx的文档

expression.MoveRight(Unit, Count, Extend)

Unit和Extend是枚举,因此我们必须为它们找到正确的整数常量. wdCharacter是1,而wdExtend也是1(你如何想出这些值的不同,最简单的方法是查看Office应用程序的VBA编辑器中的对象浏览器).

假设oSelection是一个有效的对象,这应该工作:

Dispatch.call(oSelection, "MoveRight", 1, 2, 1);

现在对于第二行,您忘记了翻译中的单元格.你需要这样的东西:

Dispatch cells=Dispatch.get(oSelection,"Cells").toDispatch();//Selection.Cells. Dispatch.call(cells, "Merge"); //Selection.Cells.Merge()

请注意,我不会在第二行调用toDatch,因为Merge不会返回任何内容. toDispatch用于将返回值(如第一行)转换为Dispatch对象,稍后我可以使用该对象对该对象进行调用.

本文共计421个文字,预计阅读时间需要2分钟。

如何通过JACOB将VB代码成功迁移至Java环境?

我尝试使用JACOB和JAVA从模板创建Word文档。似乎在JACOB上找不到任何能处理文档的接口。有人能解释一下Dispatch的工作原理(.get | .put | .toDispatch)吗?我想将以下代码转换为JACOB:

Selection.Move

我试图通过JACOB / JAVA从模板创建word文档.我似乎无法在JACOB上找到任何体面的文档.有人可以解释一下Dispatch的工作原理(.get | .put | .toDispatch)吗?我想将以下代码转换为JACOB:

Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend Selection.Cells.Merge

我试过了:

Dispatch.call(oSelection, "MoveRight", 2, "Extend"); Dispatch.call(oSelection, "Merge").toDispatch();

但它肯定不起作用.

如何通过JACOB将VB代码成功迁移至Java环境?

任何帮助,将不胜感激.

雅各布没有任何问题,它的工作方式与广告一样.

首先,您必须找到Word 2003的对象引用,您似乎正在使用它
其原因在于,当使用命名参数时,可以省略一些可选参数,并且可以不按顺序指定一些参数.所以我首先需要确认Selection.MoveRight的签名.以下是MoveRight:msdn.microsoft.com/en-us/library/aa212388(v=office.11).aspx的文档

expression.MoveRight(Unit, Count, Extend)

Unit和Extend是枚举,因此我们必须为它们找到正确的整数常量. wdCharacter是1,而wdExtend也是1(你如何想出这些值的不同,最简单的方法是查看Office应用程序的VBA编辑器中的对象浏览器).

假设oSelection是一个有效的对象,这应该工作:

Dispatch.call(oSelection, "MoveRight", 1, 2, 1);

现在对于第二行,您忘记了翻译中的单元格.你需要这样的东西:

Dispatch cells=Dispatch.get(oSelection,"Cells").toDispatch();//Selection.Cells. Dispatch.call(cells, "Merge"); //Selection.Cells.Merge()

请注意,我不会在第二行调用toDatch,因为Merge不会返回任何内容. toDispatch用于将返回值(如第一行)转换为Dispatch对象,稍后我可以使用该对象对该对象进行调用.