Trabajar con Columnas y Filas

Para más control sobre cómo funcionan las tablas, aprenda a manipular columnas y filas.

Encontrar el índice de elemento de la tabla

Las columnas, filas y células se gestionan accediendo al nodo de documento seleccionado por su índice. Encontrar el índice de cualquier nodo implica reunir todos los nodos del tipo de elemento del nodo padre, y luego usar el IndexOf método para encontrar el índice del nodo deseado en la colección.

Encontrar el índice de una tabla en un documento

A veces es posible que necesite hacer cambios en una tabla en particular en un documento. Para ello, puede referirse a una tabla por su índice.

El siguiente ejemplo de código muestra cómo recuperar el índice de una tabla en un documento:

Encontrar el índice de una fila en una tabla

Del mismo modo, es posible que necesite hacer cambios en una fila específica en una tabla seleccionada. Para ello, también puede referirse a una fila por su índice.

El siguiente ejemplo de código muestra cómo recuperar el índice de una fila en una tabla:

Encontrar el índice de una célula en una fila

Por último, es posible que necesite hacer cambios en una celda específica, y también puede hacerlo por índice celular.

El siguiente ejemplo de código muestra cómo recuperar el índice de una célula en una fila:

Trabajar con Columnas

En el Aspose.Words Document Object Model (G)DOM), el Table nodo consiste en Row nodos y luego Cell nodos. Así, en el Document Modelo de Objetos Aspose.Words, como en documentos de Word, no hay concepto de una columna.

Por diseño, las filas de mesa en Microsoft Word y Aspose.Words son completamente independientes, y las propiedades y operaciones básicas están contenidas sólo en las filas y células de la tabla. Esto da a las tablas la capacidad de tener algunos atributos interesantes:

  • Cada fila de mesa puede tener un número completamente diferente de células
  • Verticalmente, las células de cada fila pueden tener diferentes anchos
  • Es posible unir tablas con diferentes formatos de fila y número de células

work-with-columns-aspose-words-java

Cualquier operación realizada en las columnas es en realidad “shortcuts” que realizan la operación cambiando colectivamente las células de fila de tal manera que parece que se están aplicando a las columnas. Es decir, usted puede realizar operaciones en columnas simplemente iterando sobre el mismo índice de la fila de la tabla.

El siguiente ejemplo de código simplifica tales operaciones probando una clase de fachada que recoge las células que componen un “column” de una tabla:

El siguiente ejemplo de código muestra cómo insertar una columna en blanco en una tabla:

El siguiente ejemplo de código muestra cómo eliminar una columna de una tabla en un documento:

Especifique las filas como las filas de encabezado

Usted puede elegir repetir la primera fila en la tabla como el Header Row sólo en la primera página o en cada página si la tabla se divide en varios. In Aspose.Words, puede repetir el Header Row en cada página usando el HeadingFormat propiedad.

También puede marcar varias filas de cabecera si tales filas se encuentran una después de la otra al principio de la tabla. Para hacer esto, usted necesita aplicar el HeadingFormat propiedades a estas filas.

El siguiente ejemplo de código muestra cómo construir una tabla que incluye Header Rows que repiten en las páginas siguientes:

Mantenga las tablas y filas de romper a través de las páginas

Hay momentos en que el contenido de una tabla no debe dividirse en páginas. Por ejemplo, si un título está por encima de una tabla, el título y la tabla deben mantenerse siempre juntos en la misma página para preservar la apariencia adecuada.

Hay dos técnicas separadas que son útiles para lograr esta funcionalidad:

  • Allow row break across pages, que se aplica a las filas de mesa
  • Keep with next, que se aplica a los párrafos de las celdas

Por defecto, las propiedades anteriores están deshabilitadas.

keep-tables-and-rows-from-breaking-across-pages-aspose-words-java

Mantenga una fila de romper a través de las páginas

Esto implica restringir el contenido dentro de las células de una fila de ser dividido en una página. In Microsoft Word, esto se puede encontrar bajo Propiedades de la tabla como la opción “Permitir fila para romper a través de páginas”. In Aspose.Words esto se encuentra bajo RowFormat objeto de un Row como propiedad RowFormat.AllowBreakAcrossPages.

keep-rows-from-breaking-across-pages-aspose-words-java

El siguiente ejemplo de código muestra cómo deshabilitar filas de ruptura a través de páginas para cada fila en una tabla:

Mantenga una tabla de romper a través de páginas

Para evitar que la tabla se divida en páginas, necesitamos especificar que queremos que el contenido que figura en la tabla se mantenga unido.

Para hacer esto, Aspose.Words utiliza un método que permite a los usuarios seleccionar una tabla y habilitar KeepWithNext parámetro a true para cada párrafo dentro de las celdas del cuadro. La excepción es el último párrafo del cuadro, que debe establecerse false.

keep-tables-from-breaking-across-pages-aspose-words-java

El siguiente ejemplo de código muestra cómo establecer una tabla para permanecer juntos en la misma página: