¿Cómo puedo determinar la celda de la tabla a la que pertenece el marcador usando Office.Interop?

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

Pregunta

Estoy creando una aplicación en C #. Esa aplicación necesita crear un documento de MS Word a partir de la plantilla. Esa plantilla contiene una tabla y un marcador almacenados en una de las celdas de la tabla. Necesito hacer referencia a esa celda, es decir, necesito determinar su fila y columna.

¿Fue útil?

Solución

Bueno, esto resultó ser una molestia. Sin embargo, se me ocurrió un pequeño truco: Los marcadores no están relacionados de ninguna manera con las celdas de la tabla. No hay forma de determinar la celda desde el marcador. Sin embargo, lo que sí es posible es establecer el valor en la posición marcada y luego recorrer en iteración las celdas de la tabla buscando ese valor. Una vez que se encuentra el valor, podemos hacer referencia a la celda y eliminar ese valor si es necesario. Por lo tanto, el valor (temp) sirve como mediador entre el marcador y la celda. Neat!

Otros consejos

Mi primera publicación (por favor sea amable). De todos modos, ¿qué tal esto:

// 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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top