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 particulares, el formato de celda solo a ciertas celdas.

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

En este artículo, hablaremos sobre cómo aplicar formato a diferentes nodos de tabla y qué admite la configuración de formato de tabla 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 usar las propiedades disponibles en el nodo Table correspondiente usando las clases Table, PreferredWidth y TableCollection.

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

apply-formatting-to-table-level-aspose-words-java

apply-formatting-to-table-level-aspose-words-java

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 a nivel de fila * * se puede controlar utilizando las clases Row, RowFormat y RowCollection.

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

apply-formatting-to-row-level-aspose-words-java

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

Formateo 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 características de formato Cell en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

apply-formatting-to-cell-level-aspose-words-java

apply-auto-formatting-to-row-level-aspose-words-java

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

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

Especificación de Alturas de Fila

La forma más sencilla de establecer la altura de la fila es usar 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 la fila de la tabla se controla mediante:

  • 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 tabla.

El siguiente ejemplo de código muestra cómo crear una tabla que contenga 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 general, así como de las celdas individuales:

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

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

Cómo Usar el Ancho Preferido

El ancho deseado de una tabla o celdas individuales se define a través de la propiedad de ancho preferida, que es el tamaño que un elemento se esfuerza por ajustar. Es decir, el ancho preferido se puede especificar para toda la tabla o para celdas individuales. En algunas situaciones, es posible 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 campo Auto para especificar auto 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 del preferred width setting features en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-table-properties-aspose-words-java

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

table-applied-options-java

Especifique el Ancho de Tabla o Celda Preferido

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

  • Auto, que es equivalente a ningún conjunto de ancho preferido
  • Percent, que ajusta el elemento en relación con el espacio disponible en el tamaño de la ventana o contenedor, y vuelve a calcular 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 externa 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 usar las propiedades Type y Value para encontrar los detalles de ancho preferidos 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 tabla:

Cómo Configurar el Autoajuste

La propiedad AllowAutoFit permite que las celdas de una tabla crezcan y se contraigan de acuerdo con un criterio seleccionado. Por ejemplo, puede usar la opción AutoFit to Window para ajustar la tabla al ancho de la página y la opción AutoFit to Content para permitir que cada celda crezca o se contraiga según su contenido.

De forma predeterminada, Aspose.Words inserta una nueva tabla usando AutoFit to Window. La tabla se dimensionará de acuerdo con el 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 autoajuste se aplica a la tabla.

Es importante saber que el método de autoajuste es en realidad un acceso directo que aplica diferentes propiedades a la tabla al mismo tiempo. Estas son propiedades que realmente le dan a la tabla el comportamiento observado. Discutiremos estas propiedades para cada opción de autoajuste.

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

Usaremos la siguiente tabla para aplicar las diversas configuraciones de ajuste automático como demostración.

apply-different-autofit-settings-to-a-table-aspose-words-java

AutoFit Tabla a Ventana

Cuando se aplica el ajuste automático a una ventana a una tabla, las siguientes operaciones se realizan realmente 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 de 100%
  2. CellFormat.PreferredWidth se elimina de todas las celdas de la tabla
  3. Los anchos de columna se vuelven a calcular 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 página:

Un ejemplo de cómo se aplican estas opciones a la tabla anterior se puede ver en la imagen a continuación.

autofit-table-aspose-words-java

AutoFit Tabla al contenido

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

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

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

  3. Los anchos de columna se vuelven a calcular para el contenido actual de la tabla: el resultado final es una tabla en la que los anchos de columna y el ancho de toda la tabla se redimensionan automáticamente 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:

Un ejemplo de cómo se aplican estas opciones a la tabla anterior se puede ver en la imagen a continuación.

resize-column-autofit-settings-aspose-words-java

Deshabilite AutoFit en la Tabla y Use Anchos de Columna Fijos

Si una tabla tiene el autoajuste 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 en su contenido
  2. El ancho preferido de toda la tabla se elimina de Table.PreferredWidth, 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:

Un ejemplo de cómo se aplican estas opciones a la tabla anterior se puede ver en la imagen a continuación.

disable-autofit-settings-to-a-table-aspose-words-java

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 varios objetos, incluido CellFormat; su propiedad Width es en su mayoría sobrante 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 según cuál de las otras propiedades de ancho ya exista en la tabla.

Aspose.Words usa el siguiente orden para calcular los anchos de celda:

Orden Propiedad Descripción
AllowAutoFit se determina Si AutoFit está habilitado:
- la mesa puede crecer más allá del ancho preferido para acomodar el contenido – generalmente no se contrae por debajo del ancho preferido
- cualquier cambio en el valor CellFormat.Width se ignora y la celda se ajustará a su contenido en su lugar
PreferredWidthType con un valor de Points o Percent CellFormat.Width se ignora
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 Espaciado Entre Celdas

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

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

formatting-spacing-between-cells-aspose-words-java

El siguiente ejemplo de código muestra cómo establecer el espaciado 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 establecer usando RowFormat.Borders, sin embargo, el sombreado no se puede aplicar de esta manera.

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

apply-borders-shading-aspose-words-java-1

apply-borders-shading-aspose-words-java-2

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