Comment déterminer la cellule de tableau à laquelle appartient le signet en utilisant Office.Interop

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

Question

Je crée une application en C #. Cette application doit créer un document MS Word à partir du modèle. Ce modèle contient un tableau et un signet stockés dans l'une des cellules du tableau. Je dois faire référence à cette cellule, c’est-à-dire que je dois déterminer ses lignes et ses colonnes.

Était-ce utile?

La solution

Eh bien, cela s’est avéré être une nuisance. Cependant, je suis venu avec un petit truc: Les signets ne sont en aucun cas liés aux cellules du tableau. Il n'y a aucun moyen de déterminer la cellule à partir d'un signet. Ce qui est possible, cependant, consiste à définir la valeur à la position marquée par un signet, puis à parcourir les cellules du tableau à la recherche de cette valeur. Une fois la valeur trouvée, nous pouvons référencer la cellule et supprimer cette valeur si nécessaire. Ainsi, la valeur (temp) sert de médiateur entre le signet et la cellule. Neat!

Autres conseils

Mon premier message (s'il vous plait, soyez gentil). Quoi qu'il en soit, que diriez-vous de cela:

// at this point objWordApp should be an instance of word with the document open<br>
object objBookmarkName = "mybookmark";<br>
object objGotoBookmark = Word.WdGoToItem.wdGoToBookmark;<br>
Word.Table objTable;<br>
Word.Range objRange;<br>
objTable = objWordApp.ActiveDocument.GoTo(ref objGotoBookmark, ref objMissing, ref objMissing, ref objBookmarkName).Tables.Item(1);<br>
objWordApp.Selection.GoTo(ref objGotoBookmark, ref objMissing, ref objMissing, ref objBookmarkName);

int intRow = objRange.Cells.Item(1).RowIndex;<br>int intCol = objRange.Cells.Item(1).ColumnIndex;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top