Вызов макроса VB из кода Java - PullRequest
3 голосов
/ 10 мая 2010

Я создал макрос VB. Я хочу передать макросу строку и местоположение файла. Как бы я назвал это в коде Java. Есть ли библиотека для этого?

Ответы [ 3 ]

2 голосов
/ 11 мая 2010

Вы можете запустить vbscript, используя «cscript.exe», который поставляется вместе с Windows.

В зависимости от вашего сценария вы можете запустить его из Java различными способами:

  • используйте Runtime.exec для запуска программы. Вы можете сделать это непосредственно как часть вашей программы.
  • используйте Ant, у которого есть задача exec, или maven, у которого есть плагин exec. Это наиболее полезно при запуске сценария как части сборки или другого пакетного процесса.

РЕДАКТИРОВАТЬ: если ваш сценарий имеет графический интерфейс, используйте «wscript.exe».

Я предполагаю, что вы имеете в виду vbscript, но если вы действительно имеете в виду макрос, такой как макрос Word, то вам нужно будет сделать что-то вроде этого:

"C:\Program Files\Microsoft Office\Office12\Winword.exe" 
"C:\MyPath\MyDoc.doc" /m"Macro1"

Кроме того, вы можете создать небольшой vbscript, который создает экземпляр приложения Word и использует метод run () для вызова макроса. Вы выполняете этот скрипт, используя cscript.exe / wscript.exe.

1 голос
/ 10 мая 2010

На SourceForge имеется "JACOB - Java COM Bridge". У проекта есть вторая, более датированная домашняя страница .

И еще есть коммерческая (D) библиотека автоматизации COM / ActiveX под названием J-Integra , которая также выглядит так, как будто она может сделать такую ​​вещь.

Отказ от ответственности: это просто ссылки, которые я вытащил из Google, у меня нет практического опыта работы с этими библиотеками.

0 голосов
/ 11 мая 2010

Мы используем Com4J, который создал нам набор классов Java, который выглядит идентично классам ActiveX, используемым из Word VBA, и вызываем их напрямую. Это, очевидно, работает только на компьютерах с Windows, поскольку Word не работает на Linux (за исключением случаев, когда у вас много времени и Wine).

Имея эти API, готовые в Java, мы сможем вызывать любой макрос, определенный в word.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...