Aplicar Formato
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 una API enriquecida 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.
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
Nivel de fila
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.
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.
Tenga en cuenta que a Cell solo puede ser un nodo hijo de a Row. Al mismo tiempo, debe haber al menos un Paragraph en el Cell para que se le pueda aplicar formato.
Además del Paragraph, también puede insertar un Table en un Cell.
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.
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:
Especificar 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:
Especificación de Anchos de Tabla y Celda
Una tabla en un documento de Microsoft Word proporciona varias formas diferentes de cambiar el tamaño de la tabla y 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.
En la mayoría de los casos, se recomienda la celda preferida que el ancho de la tabla. El ancho de celda preferido está más en línea con la especificación de formato DOCX, así como con el modelo Aspose.Words.
El ancho de la celda es en realidad un valor calculado para el formato DOCX. El ancho real de la celda puede depender de muchas cosas. Por ejemplo, cambiar los márgenes de la página o el ancho preferido de la tabla puede afectar el ancho real de la celda.
El ancho de celda preferido es una propiedad de celda que se almacena en el documento. No depende de nada y no cambia cuando cambia la tabla u otras propiedades de la celda.
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 método 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.
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.
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:
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:
- 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%
- CellFormat.PreferredWidth se elimina de todas las celdas de la tabla
Tenga en cuenta que esto es ligeramente diferente del comportamiento de Microsoft Word, donde el ancho preferido de cada celda se establece en los valores apropiados en función de su tamaño y contenido actuales. Aspose.Words no actualiza el ancho preferido, por lo que simplemente se borran.
- 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
- 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:
AutoFit Tabla al contenido
Cuando la tabla ajusta automáticamente el contenido, los siguientes pasos se realizan realmente detrás de escena:
-
La propiedad Table.AllowAutoFit está habilitada para cambiar automáticamente el tamaño de cada celda de acuerdo con su contenido
-
El ancho de tabla preferido se elimina de Table.PreferredWidth, CellFormat.PreferredWidth se elimina para cada celda de la tabla
Tenga en cuenta que esta opción de ajuste automático elimina el ancho preferido de las celdas, al igual que en Microsoft Word. Si desea mantener los tamaños de las columnas y aumentarlas o disminuirlas para que se ajusten al contenido, debe establecer la propiedad Table.AllowAutoFit en True por sí sola en lugar de usar el acceso directo de ajuste automático. -
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:
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:
- La propiedad Table.AllowAutoFit está deshabilitada para que las columnas no crezcan ni se reduzcan en su contenido
- El ancho preferido de toda la tabla se elimina de Table.PreferredWidth, CellFormat.PreferredWidth se elimina de todas las celdas de la tabla
- 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 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 | Descripción |
---|---|
Permitir Espaciado Entre Celdas
Puede obtener o establecer cualquier espacio adicional entre las celdas de la tabla de manera 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.
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.
El siguiente ejemplo de código muestra cómo formatear una tabla y una celda con diferentes bordes y sombreados: