Formato de tabla

Cada elemento de una tabla se puede aplicar con formato diferente. Por ejemplo, el formato de tabla se aplicará a toda la tabla, el formato de filas sólo a filas particulares, el formato celular a sólo ciertas células.

Aspose.Words proporciona un rico API para recuperar y aplicar formato a una tabla. Puedes usar el Table, RowFormat, y CellFormat nodos para configurar el formato.

En este artículo hablaremos sobre cómo aplicar formato a diferentes nodos de mesa y qué configuración de formato de tabla Aspose.Words soportes.

Aplicar Formato a Diferentes Nodos

En esta sección, vamos a ver la aplicación de formato a varios nodos de mesa.

Formato de nivel de tabla

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

Las imágenes de abajo muestran una representación de la Table características de formato 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 una frontera de esbozo a una tabla:

El siguiente ejemplo de código muestra cómo construir una tabla con todas las fronteras habilitadas (grid):

Formato de nivel de fila

El formato Row-level** se puede controlar utilizando el Row, RowFormat, y RowCollection clases.

Las imágenes de abajo muestran una representación de la Row características de formato 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 tabla:

Formato de nivel celular

El formato de nivel celular está controlado por el Cell, CellFormat, y CellCollection clases.

Las imágenes de abajo muestran una representación de la Cell características de formato 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) para añadir a la izquierda/top/right/bottom del contenido de la célula:

Especificación de Row Heights

La forma más simple de establecer la altura de la fila es utilizar la DocumentBuilder. Utilizando el apropiado RowFormat propiedades, puede establecer el ajuste de altura predeterminado o aplicar una altura diferente para cada fila en la tabla.

In Aspose.Words, altura de la fila de la mesa es controlada por:

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

Al mismo tiempo, se puede fijar una altura diferente para cada fila – esto 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 célula y aplicar formato de fila:

Especifique la tabla y las anchuras celulares

Una mesa en una Microsoft Word El documento proporciona varias maneras diferentes de redimensionar la tabla y las células individuales. Estas propiedades permiten un control considerable sobre la apariencia y el comportamiento de la mesa, de modo que Aspose.Words apoya el comportamiento de las tablas, como en Microsoft Word.

Es importante saber que los elementos de mesa presentan varias propiedades diferentes que pueden afectar cómo se calculan los anchos de la tabla general, así como las células individuales:

  • Ancho preferido en la mesa
  • Ancho preferido en las celdas individuales
  • Permitir el autofit en la mesa

Este artículo detalla cómo funcionan las diversas propiedades de cálculo de la anchura de la tabla y cómo obtener el control completo sobre el cálculo de la anchura de la tabla. Esto es especialmente útil para saber en casos en que el diseño de la tabla no parece como esperado.

Cómo utilizar la anchura preferida

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 encajar. Es decir, el ancho preferido se puede especificar para toda la tabla o para las células 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 de ancho y el valor preferido adecuado se establecen utilizando los métodos PreferredWidth clase:

  • el Auto campo para especificar auto o “no el ancho preferido”
  • el FromPercent método para especificar un ancho porcentual
  • el FromPoints método para especificar el ancho en puntos

Las imágenes de abajo muestran una representación de las características de ajuste de ancho * preferido* en Microsoft Word y sus propiedades correspondientes en Aspose.Words.

formatting-table-properties-aspose-words-java

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

table-applied-options-java

Especifique la Tabla Preferente o Ancho Celular

In Aspose.Words, los anchos de mesa y celda se establecen utilizando el Table.PreferredWidth propiedad y el CellFormat.PreferredWidth propiedad, con opciones disponibles en PreferredWidthType enumeración:

  • Auto, que es equivalente a un conjunto de ancho preferido
  • Percent, que se ajusta al elemento relativo al espacio disponible en la ventana o tamaño del contenedor, y recalcula el valor cuando el ancho disponible cambia
  • Points, que corresponde a un elemento del ancho especificado en puntos

Usando el Table.PreferredWidth propiedad ajustará su anchura preferida en relación con su contenedor: página, columna de texto, o celda de mesa externa si es una tabla anida.

El siguiente ejemplo de código muestra cómo configurar la tabla para auto-ajustar al 50% del ancho de la página:

Usando el CellFormat.PreferredWidth propiedad en una celda determinada ajustará su ancho preferido.

El siguiente ejemplo de código muestra cómo establecer los diferentes ajustes de ancho preferidos:

Tipo de ancho preferido y valor

Puedes usar el Type y Value propiedades para encontrar los detalles de ancho preferidos de la tabla o la célula deseada.

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

Cómo establecer Autofit

El AllowAutoFit propiedad permite que las células en una tabla crezcan y se encojan según un criterio seleccionado. Por ejemplo, puede utilizar el AutoFit to Window opción para ajustar la tabla a la anchura de la página, y AutoFit to Content opción para permitir que cada célula crezca o se encoge según su contenido.

Por defecto, Aspose.Words inserta una tabla nueva utilizando AutoFit to Window. La tabla será tallada según el ancho de página disponible. Para cambiar el tamaño de una mesa, puede llamar a la AutoFit método. Este método acepta un AutoFitBehavior enumeración que especifica qué tipo de autofit se aplica a la tabla.

Es importante saber que el método autofit es en realidad un atajo que aplica diferentes propiedades a la tabla al mismo tiempo. Estas son propiedades que realmente dan a la tabla el comportamiento observado. Vamos a discutir estas propiedades para cada opción autofit.

El siguiente ejemplo de código muestra cómo establecer una tabla para reducir o crecer cada célula según su contenido:

Usaremos la siguiente tabla para aplicar los diversos ajustes de ajuste automático como demostración.

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

AutoFit Table to Window

Al autofitting a una ventana se aplica a una tabla, las siguientes operaciones se realizan en realidad detrás de las escenas:

  1. El Table.AllowAutoFit propiedad se habilita para cambiar automáticamente las columnas para ajustar el contenido disponible, utilizando un Table.PreferredWidth valor del 100%
  2. CellFormat.PreferredWidth se elimina de todas las celdas de mesa
  3. Los anchos de la columna se recalculan para el contenido actual de la tabla – el resultado final es una tabla que ocupa toda la anchura 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 autofitear una tabla a la anchura de la página:

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

autofit-table-aspose-words-java

Tabla de AutoFit al Contenido

Cuando la tabla se autofitea el contenido, los siguientes pasos se realizan detrás de las escenas:

  1. El Table.AllowAutoFit propiedad está habilitada para cambiar automáticamente cada célula según su contenido

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

  3. Los anchos de la columna se recalculan para el contenido actual de la tabla – el resultado final es una tabla donde los anchos de la columna y la anchura de la tabla entera se redimensionan automáticamente para adaptarse mejor al contenido ya que el usuario edita el texto

El siguiente ejemplo de código muestra cómo adaptar una tabla a su contenido:

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

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

AutoFit deshabilitado en la tabla y utilizar las anchuras de columna fija

Si una tabla tiene los anchos de columnas desactivados y fijos autofit se utilizan en su lugar, se realizan los siguientes pasos:

  1. Table.AllowAutoFit propiedad está deshabilitado por lo que las columnas no crecen o se contraen a su contenido
  2. La anchura preferida de toda la tabla se retira de Table.PreferredWidth, CellFormat.PreferredWidth se elimina de todas las celdas de mesa
  3. El resultado final es una tabla cuyo ancho de columna está determinado por el CellFormat.Width propiedad, y cuyas columnas no se tamaño automáticamente cuando el usuario entra texto o cuando la página se tamaño

El siguiente ejemplo de código muestra cómo desactivar el autofit y habilitar el ancho fijo para la tabla especificada:

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

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

Orden de Precedencia al calcular la anchura celular

Aspose.Words permite a los usuarios definir el ancho de una tabla o celda a través de múltiples objetos, incluyendo CellFormat – su Width propiedad se deja sobre todo de versiones anteriores, sin embargo, sigue siendo útil para simplificar el ajuste del ancho de la célula.

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

Aspose.Words utiliza la siguiente orden para calcular anchos de celda:

Orden Propiedad Descripción
1 AllowAutoFit se determina Si AutoFit está habilitado:
- la tabla puede crecer más allá de la anchura preferida para acomodar el contenido – por lo general no se encoge debajo del ancho preferido
- cualquier cambio al CellFormat.Width valor es ignorado y la célula se ajusta a su contenido en su lugar
2 PreferredWidthType con un valor Points o Percent CellFormat.Width es ignorado
3 PreferredWidthType con un valor Auto El valor de CellFormat.Width es copiado y se convierte en el ancho preferido de la célula (en puntos)

Permitir el espacio entre las células

Puede obtener o establecer cualquier espacio adicional entre las celdas de mesa similar a la opción “Espaciamiento de Carrito” en Microsoft Word. Esto se puede hacer utilizando AllowCellSpacing propiedad.

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

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

El siguiente ejemplo de código muestra cómo establecer el espaciado entre las células:

Aplicar Fronteras y Compartir

Las fronteras y la sombra se pueden aplicar a toda la mesa utilizando Table.SetBorder, Table.SetBorders y Table.SetShading, o solamente a células específicas usando CellFormat.Borders y CellFormat.Shading. Además, las fronteras de fila se pueden establecer utilizando RowFormat.Borders, sin embargo, no se puede aplicar de esta manera.

Las imágenes de abajo muestran la configuración de la frontera 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 fronteras y grietas: