Quelqu'un peut-il expliquer comment convertir le code VB en Java avec Jacob?

StackOverflow https://stackoverflow.com//questions/24039523

  •  21-12-2019
  •  | 
  •  

Question

J'essaie de créer un document Word à partir d'un modèle via Jacob / Java.Je n'arrive pas à trouver une documentation décente sur Jacob.Quelqu'un peut-il s'il vous plaît expliquer comment les travaux d'expédition (.get | .put | .todispatch)?J'essaie de convertir le code suivant en Jacob:

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

J'ai essayé:

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

Mais cela ne fonctionne certainement pas.

Toute aide serait appréciée.

Était-ce utile?

La solution

Il n'y a rien de mal avec Jacob, cela fonctionne comme annoncé.

Donc, tout d'abord, vous devez trouver la référence d'objet pour Word 2003, que vous semblez utiliser La raison en est que lors de l'utilisation de paramètres nommés, certains paramètres facultatifs peuvent être omis et certains paramètres peuvent être spécifiés en dehors de l'ordre. Donc, j'ai d'abord besoin de confirmer la signature de la sélection.Poveright. Voici la documentation pour MOVERIER: http:// msdn.microsoft.com/en-us/library/aa212388(v=Office.11).aspx

expression.MoveRight(Unit, Count, Extend)

Unité et étendre sont des énumérations, nous devrons donc trouver les constantes d'entier appropriées. WDCharacter est 1 et WDextend est également 1 (comment vous proposez ces valeurs différentes, le moyen le plus simple consiste à regarder le navigateur d'objet dans l'éditeur VBA de l'application Office).

En supposant que l'oselection est un objet valide, cela devrait fonctionner:

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

Maintenant pour la deuxième ligne, vous avez oublié des cellules de la traduction. Vous aurez besoin de quelque chose comme ceci:

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

Notez que je n'appelle pas TODISPATCH sur la deuxième ligne, car la fusion ne renvoie rien. Todispatch est utilisé pour convertir une valeur de retour, comme sur la première ligne, dans un objet Dispatch, je peux utiliser ultérieurement pour effectuer des appels sur cet objet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top