Aplicar formato de tabla

Cada elemento de una tabla se puede aplicar con un formato diferente. Por ejemplo, el formato de tabla se aplicará a toda la tabla, el formato de fila solo a filas específicas y el formato de celda solo a ciertas celdas.

Aspose.Words proporciona un API enriquecido para recuperar y aplicar formato a una tabla. Puede utilizar los nodos Table, RowFormat y CellFormat para configurar el formato.

En este artículo, hablaremos sobre cómo aplicar formato a diferentes nodos de la tabla y qué configuraciones de formato de tabla admite Aspose.Words.

Aplicar formato a diferentes nodos

En esta sección, veremos cómo aplicar formato a varios nodos de la tabla.

Formato a nivel de tabla

Para aplicar formato a una tabla, puede utilizar las propiedades disponibles en el nodo Table correspondiente utilizando las clases Table, PreferredWidth y TableCollection.

Las siguientes imágenes muestran una representación de las funciones de formato Table en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formattin-features-table-level-aspose-words-net

formatting-table-options-aspose-words-net

El siguiente ejemplo de código muestra cómo aplicar un borde de contorno a una tabla:

El siguiente ejemplo de código muestra cómo crear una tabla con todos los bordes habilitados (cuadrícula):

Formato de nivel de fila

El formato nivel de fila se puede controlar mediante las clases Row, RowFormat y RowCollection.

Las siguientes imágenes muestran una representación de las funciones de formato Row en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-row-level-aspose-words-net

El siguiente ejemplo de código muestra cómo modificar el formato de fila de la tabla:

Formato a nivel de celda

El formato a nivel de celda está controlado por las clases Cell, CellFormat y CellCollection.

Las siguientes imágenes muestran una representación de las funciones de formato Cell en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-cell-level-aspose-words-net

auto-formatting-cell-level-aspose-words-net

El siguiente ejemplo de código muestra cómo modificar el formato de una celda de una tabla:

El siguiente ejemplo de código muestra cómo establecer la cantidad de espacio (en puntos) para agregar a la izquierda/arriba/derecha/abajo del contenido de la celda:

Especificar alturas de fila

La forma más sencilla de establecer la altura de la fila es utilizar DocumentBuilder. Usando las propiedades RowFormat apropiadas, puede establecer la configuración de altura predeterminada o aplicar una altura diferente para cada fila de la tabla.

En Aspose.Words, la altura de las filas de la tabla está controlada por:

  • la propiedad de altura de fila – Height
  • la propiedad de la regla de altura para la fila dada – HeightRule

Al mismo tiempo, se puede establecer una altura diferente para cada fila, lo que le permite controlar ampliamente la configuración de la mesa.

El siguiente ejemplo de código muestra cómo crear una tabla que contiene una sola celda y aplicar formato de fila:

Especificar anchos de tabla y celda

Una tabla en un documento Microsoft Word proporciona varias formas diferentes de cambiar el tamaño de la tabla y de las celdas individuales. Estas propiedades permiten un control considerable sobre la apariencia y el comportamiento de la tabla, de modo que Aspose.Words admite el comportamiento de las tablas, como en Microsoft Word.

Es importante saber que los elementos de la tabla presentan varias propiedades diferentes que pueden afectar la forma en que se calculan los anchos de la tabla en general, así como las celdas individuales:

  • Ancho preferido en la mesa.
  • Ancho preferido en celdas individuales
  • Permitir autoajuste en la mesa.

Este artículo detalla cómo funcionan las distintas propiedades de cálculo del ancho de la tabla y cómo obtener control total sobre el cálculo del ancho de la tabla. Esto es Es especialmente útil saberlo en casos en los que el diseño de la tabla no aparece como se esperaba.

Cómo utilizar el ancho preferido

El ancho deseado de una tabla o celdas individuales se define a través de la propiedad de ancho preferido, que es el tamaño que un elemento intenta ajustar. Es decir, el ancho preferido se puede especificar para toda la tabla o para celdas individuales. En algunas situaciones, puede que no sea posible ajustar este ancho exactamente, pero el ancho real estará cerca de este valor en la mayoría de los casos.

El tipo y valor de ancho preferido apropiado se establecen utilizando los métodos de la clase PreferredWidth:

  • el método Auto para especificar automático o “sin ancho preferido”
  • el método FromPercent para especificar un ancho porcentual
  • el método FromPoints para especificar el ancho en puntos

Las siguientes imágenes muestran una representación de las funciones de configuración de ancho preferidas en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-table-properties-aspose-words-net

En la siguiente imagen se puede ver un ejemplo de cómo se aplican estas opciones a una tabla real en un documento.

todo:image_alt_text

Especifique la tabla preferida o el ancho de celda

En Aspose.Words, los anchos de tablas y celdas se configuran mediante la propiedad Table.PreferredWidth y la propiedad CellFormat.PreferredWidth, con opciones disponibles en la enumeración PreferredWidthType:

  • Auto, que equivale a no establecer un ancho preferido
  • Percent, que ajusta el elemento en relación con el espacio disponible en la ventana o tamaño del contenedor, y recalcula el valor cuando cambia el ancho disponible
  • Points, que corresponde a un elemento del ancho especificado en puntos

El uso de la propiedad Table.PreferredWidth ajustará su ancho preferido en relación con su contenedor: página, columna de texto o celda exterior de la tabla si es una tabla anidada.

El siguiente ejemplo de código muestra cómo configurar la tabla para que se ajuste automáticamente al 50% del ancho de la página:

El uso de la propiedad CellFormat.PreferredWidth en una celda determinada ajustará su ancho preferido.

El siguiente ejemplo de código muestra cómo establecer las diferentes configuraciones de ancho preferidas:

Encuentre el tipo y valor de ancho preferido

Puede utilizar las propiedades Type y Value para encontrar los detalles de ancho preferido de la tabla o celda deseada.

El siguiente ejemplo de código muestra cómo recuperar el tipo de ancho preferido de una celda de una tabla:

Cómo configurar el ajuste automático

La propiedad AllowAutoFit permite que las celdas de una tabla crezcan y se reduzcan según un criterio seleccionado. Por ejemplo, puede utilizar la opción Autoajustar a la ventana para ajustar la tabla al ancho de la página y la opción Autoajustar al contenido para permitir que cada celda crezca o se reduzca según su contenido.

De forma predeterminada, Aspose.Words inserta una nueva tabla usando Autoajustar a la ventana. La tabla tendrá un tamaño acorde al ancho de página disponible. Para cambiar el tamaño de una tabla, puede llamar al método AutoFit. Este método acepta una enumeración AutoFitBehavior que especifica qué tipo de ajuste automático se aplica a la tabla.

Es importante saber que el método de ajuste automático es en realidad un atajo que aplica diferentes propiedades a la tabla al mismo tiempo. Éstas son propiedades que realmente le dan a la tabla el comportamiento observado. Discutiremos estas propiedades para cada opción de ajuste automático.

El siguiente ejemplo de código muestra cómo configurar una tabla para reducir o aumentar cada celda según su contenido:

Autoajustar tabla a ventana

Cuando el ajuste automático de una ventana se aplica a una tabla, las siguientes operaciones en realidad se realizan detrás de escena:

  1. La propiedad Table.AllowAutoFit está habilitada para cambiar automáticamente el tamaño de las columnas para que se ajusten al contenido disponible, utilizando un valor Table.PreferredWidth del 100%.
  2. CellFormat.PreferredWidth se elimina de todas las celdas de la tabla.
  3. Los anchos de las columnas se recalculan para el contenido de la tabla actual; el resultado final es una tabla que ocupa todo el ancho disponible.
  4. El ancho de las columnas de la tabla cambia automáticamente a medida que el usuario edita el texto.

El siguiente ejemplo de código muestra cómo ajustar automáticamente una tabla al ancho de la página:

Autoajustar tabla al contenido

Cuando a la tabla se le ajusta automáticamente el contenido, los siguientes pasos se realizan detrás de escena:

  1. La propiedad Table.AllowAutoFit está habilitada para cambiar automáticamente el tamaño de cada celda según su contenido.

  2. El ancho de tabla preferido se elimina de Table.PreferredWidth y se elimina CellFormat.PreferredWidth para cada celda de la tabla.

  3. Los anchos de las columnas se recalculan para el contenido de la tabla actual: el resultado final es una tabla donde los anchos de las columnas y el ancho de toda la tabla cambian automáticamente de tamaño para adaptarse mejor al contenido a medida que el usuario edita el texto.

El siguiente ejemplo de código muestra cómo ajustar automáticamente una tabla a su contenido:

Deshabilite el ajuste automático en la tabla y use anchos de columna fijos

Si una tabla tiene el ajuste automático deshabilitado y en su lugar se utilizan anchos de columna fijos, se realizan los siguientes pasos:

  1. La propiedad Table.AllowAutoFit está deshabilitada para que las columnas no crezcan ni se reduzcan según su contenido.

  2. El ancho preferido de toda la tabla se elimina de Table.PreferredWidth y CellFormat.PreferredWidth se elimina de todas las celdas de la tabla.

  3. El resultado final es una tabla cuyos anchos de columna están determinados por la propiedad CellFormat.Width y cuyas columnas no cambian de tamaño automáticamente cuando el usuario ingresa texto o cuando se cambia el tamaño de la página.

El siguiente ejemplo de código muestra cómo deshabilitar el ajuste automático y habilitar el ancho fijo para la tabla especificada:

Orden de precedencia al calcular el ancho de celda

Aspose.Words permite a los usuarios definir el ancho de una tabla o celda a través de múltiples objetos, incluido CellFormat; su propiedad Width se conserva en su mayor parte de versiones anteriores; sin embargo, sigue siendo útil para simplificar la configuración del ancho de la celda.

Es importante saber que la propiedad CellFormat.Width funciona de manera diferente dependiendo de cuál de las otras propiedades de ancho ya existe en la tabla.

Aspose.Words utiliza el siguiente orden para calcular el ancho de celda:

Orden Propiedad Descripción
1 AllowAutoFit está determinado Si AutoFit está habilitado:
- la tabla puede crecer más allá del ancho preferido para acomodar el contenido; generalmente no se reduce por debajo del ancho preferido
- cualquier cambio en el valor CellFormat.Width se ignora y la celda se ajustará a su contenido
2 PreferredWidthType con un valor de Points o Percent CellFormat.Width se ignora
3 PreferredWidthType con un valor de Auto El valor de CellFormat.Width se copia y se convierte en el ancho preferido de la celda (en puntos)

Permitir espacio entre celdas

Puede obtener o establecer cualquier espacio adicional entre las celdas de la tabla de forma similar a la opción “Espaciado entre celdas” en Microsoft Word. Esto se puede hacer usando la propiedad AllowCellSpacing.

En la siguiente imagen se puede ver un ejemplo de cómo se aplican estas opciones a una tabla real en un documento.

formato-espaciado-entre-celdas-aspose-words-net

El siguiente ejemplo de código muestra cómo establecer el espacio entre celdas:

Aplicar bordes y sombreado

Los bordes y el sombreado se pueden aplicar a toda la tabla usando Table.SetBorder, Table.SetBorders y Table.SetShading, o solo a celdas específicas usando CellFormat.Borders y CellFormat.Shading. Además, los bordes de las filas se pueden configurar usando RowFormat.Borders; sin embargo, el sombreado no se puede aplicar de esta manera.

Las siguientes imágenes muestran la configuración de borde y sombra en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-border-line-aspose-words-net

formatting-cell-color-aspose-words-net

El siguiente ejemplo de código muestra cómo formatear una tabla y una celda con diferentes bordes y sombreados: