Comment déterminer la cellule de tableau à laquelle appartient le signet en utilisant Office.Interop
-
05-07-2019 - |
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.
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;