Aplicar formatação de tabela

Cada elemento de uma tabela pode ser aplicado com formatação diferente. Por exemplo, a formatação da tabela será aplicada a toda a tabela, formatação da linha para apenas linhas particulares, formatação da célula para apenas certas células.

Aspose.Words fornece um rico API para recuperar e aplicar a formatação a uma tabela. Você pode usar o Table, RowFormat, e CellFormat nós para definir formatação.

Neste artigo, falaremos sobre como aplicar a formatação a diferentes nós de tabela e quais configurações de formatação de tabela Aspose.Words suportes.

Aplicar formatação para diferentes nós

Nesta seção, vamos olhar para a aplicação de formatação para vários nós de tabela.

Formatação de nível de tabela

Para aplicar a formatação a uma tabela, você pode usar as propriedades disponíveis no correspondente Table nó usando o Table, PreferredWidth, e TableCollection aulas.

As imagens abaixo mostram uma representação do Table características de formatação Microsoft Word e suas propriedades correspondentes em Aspose.Words.

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

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

O exemplo de código a seguir mostra como aplicar uma borda de contorno a uma tabela:

O exemplo de código a seguir mostra como construir uma tabela com todas as fronteiras permitidas (grid):

Formatação de nível de linha

Formatação de nível de linha** pode ser controlada usando o Row, RowFormat, e RowCollection aulas.

As imagens abaixo mostram uma representação do Row características de formatação Microsoft Word e suas propriedades correspondentes em Aspose.Words.

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

O exemplo de código a seguir mostra como modificar a formatação da linha de tabela:

Formatação de nível de célula

A formatação de nível celular é controlada pelo Cell, CellFormat, e CellCollection aulas.

As imagens abaixo mostram uma representação do Cell características de formatação Microsoft Word e suas propriedades correspondentes em Aspose.Words.

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

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

O exemplo de código a seguir mostra como modificar a formatação de uma célula de tabela:

O exemplo de código a seguir mostra como definir a quantidade de espaço (em pontos) para adicionar à esquerda/top/right/bottom do conteúdo da célula:

Especificando Row Heights

A maneira mais simples de definir a altura da linha é usar o DocumentBuilder. Usando o apropriado RowFormat propriedades, você pode definir a configuração de altura padrão ou aplicar uma altura diferente para cada linha na tabela.

Em Aspose.Words, altura da linha de tabela é controlada por:

  • a propriedade de altura da linha – Height
  • a propriedade de regra de altura para a linha dada – HeightRule

Ao mesmo tempo, uma altura diferente pode ser definida para cada linha – isso permite que você controle amplamente as configurações de tabela.

O exemplo de código a seguir mostra como criar uma tabela que contenha uma única célula e aplicar formatação de linha:

Especifique Tabela e Larguras Celulares

Uma mesa em um Microsoft Word documento fornece várias maneiras diferentes de redimensionar a tabela e as células individuais. Essas propriedades permitem um controle considerável sobre a aparência e o comportamento da tabela, de modo que Aspose.Words suporta o comportamento de tabelas, como em Microsoft Word.

É importante saber que elementos de tabela apresentam várias propriedades diferentes que podem afetar como as larguras da tabela geral, bem como as células individuais, é calculado:

  • Largura preferida na mesa
  • Largura preferencial em células individuais
  • Permitir autofit na mesa

Este artigo detalha como as várias propriedades de cálculo de largura de tabela funcionam e como obter controle total sobre o cálculo de largura da tabela. Isto é.. especialmente útil para saber em tais casos onde o layout da tabela não aparece como esperado.

Como Usar Largura Preferida

A largura desejada de uma tabela ou células individuais é definida através da propriedade de largura preferida, que é o tamanho que um elemento se esforça para caber. Ou seja, a largura preferida pode ser especificada para toda a tabela ou para células individuais. Em algumas situações pode não ser possível ajustar esta largura exatamente, mas a largura real será próxima a este valor na maioria dos casos.

O tipo e o valor de largura preferidos apropriados são definidos usando os métodos do PreferredWidth classe:

  • o Auto campo para especificar auto ou “sem largura preferida”
  • o FromPercent método para especificar uma largura percentual
  • o FromPoints método para especificar a largura em pontos

As imagens abaixo mostram uma representação dos recursos de configuração de largura preferido em Microsoft Word e suas propriedades correspondentes em Aspose.Words.

formatting-table-properties-aspose-words-java

Um exemplo de como essas opções são aplicadas a uma tabela real em um documento pode ser visto na imagem abaixo.

table-applied-options-java

Especifique a Tabela Preferida ou Largura Celular

Em Aspose.Words, tabela e larguras de célula são definidas usando o Table.PreferredWidth propriedade e CellFormat.PreferredWidth propriedade, com opções disponíveis no PreferredWidthType enumeração:

  • Não. Auto, que é equivalente a nenhum conjunto de largura preferido
  • Não. Percent, que se encaixa no elemento relativo ao espaço disponível na janela ou tamanho do recipiente, e recalcula o valor quando a largura disponível muda
  • Não. Points, que corresponde a um elemento da largura especificada em pontos

Usando o Table.PreferredWidth a propriedade ajustará sua largura preferida em relação ao seu recipiente: página, coluna de texto ou célula de tabela externa se for uma tabela aninhada.

O exemplo de código a seguir mostra como definir a tabela para ajustar automaticamente a 50% da largura da página:

Usando o CellFormat.PreferredWidth propriedade em uma determinada célula ajustará sua largura preferida.

O exemplo a seguir mostra como definir as diferentes configurações de largura preferidas:

Encontrar Tipo e Valor de Largura Preferida

Você pode usar o Type e Value propriedades para encontrar os detalhes de largura preferidos da tabela ou célula desejada.

O exemplo de código a seguir mostra como recuperar o tipo de largura preferido de uma célula de tabela:

Como Definir Autofit

O AllowAutoFit a propriedade permite que as células em uma tabela cresçam e encolhem de acordo com um critério selecionado. Por exemplo, você pode usar o AutoFit to Window opção para caber a tabela à largura da página, e a AutoFit to Content opção para permitir que cada célula cresça ou encolhe de acordo com seu conteúdo.

Por padrão, Aspose.Words insere uma nova tabela usando AutoFit to Window. A tabela será dimensionada de acordo com a largura da página disponível. Para redimensionar uma tabela, você pode chamar o AutoFit método. Este método aceita um AutoFitBehavior enumeração que especifica que tipo de autofit é aplicado à tabela.

É importante saber que o método de autofit é realmente um atalho que aplica propriedades diferentes à tabela ao mesmo tempo. Estas são propriedades que realmente dão à tabela o comportamento observado. Vamos discutir essas propriedades para cada opção de autofit.

O exemplo de código a seguir mostra como definir uma tabela para encolher ou crescer cada célula de acordo com seu conteúdo:

Usaremos a tabela a seguir para aplicar as várias configurações de ajuste automático como uma demonstração.

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

AutoFit Table to Window

Quando se aplica autofitting a uma janela a uma tabela, as seguintes operações são realizadas nos bastidores:

  1. O Table.AllowAutoFit a propriedade está habilitada a redimensionar automaticamente colunas para ajustar o conteúdo disponível, usando um Table.PreferredWidth valor de 100%
  2. CellFormat.PreferredWidth é removido de todas as células da tabela
  3. As larguras das colunas são recalculadas para o conteúdo atual da tabela – o resultado final é uma tabela que ocupa toda a largura disponível
  4. A largura das colunas na tabela muda automaticamente conforme o usuário edita o texto

O exemplo de código a seguir mostra como ajustar automaticamente uma tabela à largura da página:

Um exemplo de como essas opções são aplicadas à tabela acima pode ser visto na imagem abaixo.

autofit-table-aspose-words-java

AutoFit Table to Content

Quando a tabela é autofitted o conteúdo, os seguintes passos são realmente realizados nos bastidores:

  1. O Table.AllowAutoFit propriedade está habilitado a redimensionar automaticamente cada célula de acordo com seu conteúdo

  2. A largura de tabela preferida é removida Table.PreferredWidth, CellFormat.PreferredWidth é removido para cada célula de tabela

  3. As larguras das colunas são recalculadas para o conteúdo atual da tabela – o resultado final é uma tabela onde as larguras das colunas e a largura de toda a tabela são automaticamente redimensionadas para melhor se encaixar no conteúdo à medida que o usuário edita o texto

O exemplo de código a seguir mostra como ajustar automaticamente uma tabela ao seu conteúdo:

Um exemplo de como essas opções são aplicadas à tabela acima pode ser visto na imagem abaixo.

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

Desativar o AutoFit na tabela e usar larguras de coluna fixa

Se uma tabela tiver autofit desativado e larguras de coluna fixa forem usadas, as seguintes etapas são executadas:

  1. Table.AllowAutoFit propriedade está desativada para que as colunas não cresçam ou encolhem para o seu conteúdo
  2. A largura preferida de toda a tabela é removida de Table.PreferredWidth, CellFormat.PreferredWidth é removido de todas as células da tabela
  3. O resultado final é uma tabela cujas larguras de coluna são determinadas pela CellFormat.Width propriedade, e cujas colunas não são automaticamente redimensionadas quando o usuário entra texto ou quando a página é redimensionada

O exemplo de código a seguir mostra como desativar o ajuste automático e ativar a largura fixa para a tabela especificada:

Um exemplo de como essas opções são aplicadas à tabela acima pode ser visto na imagem abaixo.

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

Ordem de Precedência ao calcular a largura da célula

Aspose.Words permite aos usuários definir a largura de uma tabela ou célula através de vários objetos, incluindo CellFormat – a sua Width a propriedade é principalmente deixada de versões anteriores, no entanto, ainda é útil para simplificar a definição da largura da célula.

É importante saber que o CellFormat.Width propriedade funciona de forma diferente dependendo de qual das outras propriedades de largura já existem na tabela.

Aspose.Words usa a seguinte ordem para calcular as larguras das células:

Ordem Propriedade Descrição
1 AllowAutoFit é determinado Se AutoFit está habilitado:
- a tabela pode passar pela largura preferida para acomodar o conteúdo - geralmente não diminui abaixo da largura preferida
- qualquer mudança para o CellFormat.Width valor é ignorado e a célula caberá ao seu conteúdo em vez
2 PreferredWidthType com um valor de Points ou Percent CellFormat.Width é ignorado
3 PreferredWidthType com um valor de Auto O valor de CellFormat.Width é copiado e se torna a largura preferida da célula (em pontos)

Permitir espaçamento entre células

Você pode obter ou definir qualquer espaço adicional entre as células de tabela semelhantes à opção “equipamento de Сell” em Microsoft Word. Isso pode ser feito usando o AllowCellSpacing propriedade.

Um exemplo de como essas opções são aplicadas a uma tabela real em um documento pode ser visto na imagem abaixo.

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

O exemplo de código a seguir mostra como definir o espaçamento entre as células:

Aplicar Fronteiras e Shading

Fronteiras e sombreamento podem ser aplicados em toda a mesa usando Table.SetBorder, Table.SetBorders e Table.SetShading, ou apenas para células específicas usando CellFormat.Borders e CellFormat.Shading. Além disso, fronteiras de linha podem ser definidas usando RowFormat.Borders, Contudo a sombreamento não pode ser aplicada desta forma.

As imagens abaixo mostram as configurações de fronteira e sombra em Microsoft Word e suas propriedades correspondentes em Aspose.Words.

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

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

O exemplo de código a seguir mostra como formatar uma tabela e célula com diferentes fronteiras e sombreamentos: