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.
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.
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.
Note que um Cell só pode ser um nó de criança de um Row. Ao mesmo tempo, deve haver pelo menos um Paragraph no Cell para que a formatação possa ser aplicada a ele.
Além do Paragraph, você também pode inserir um Table em um Cell.
As imagens abaixo mostram uma representação do Cell características de formatação Microsoft Word e suas propriedades correspondentes em Aspose.Words.
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.
Na maioria dos casos, a célula preferida é recomendada do que a largura da tabela. A largura da célula preferida é mais em linha com a especificação do formato DOCX, bem como a Aspose.Words modelo.
A largura da célula é, na verdade, um valor calculado para o formato DOCX. A largura da célula real pode depender de muitas coisas. Por exemplo, alterar as margens de página ou a largura de tabela preferida pode afetar a largura da célula real.
A largura de célula preferida é uma propriedade de célula armazenada no documento. Não depende de nada e não muda quando você muda a tabela ou outras propriedades da célula.
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.
Um exemplo de como essas opções são aplicadas a uma tabela real em um documento pode ser visto na imagem abaixo.
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.
AutoFit Table to Window
Quando se aplica autofitting a uma janela a uma tabela, as seguintes operações são realizadas nos bastidores:
- 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%
- CellFormat.PreferredWidth é removido de todas as células da tabela
Note que isso é ligeiramente diferente do Microsoft Word comportamento, onde a largura preferida de cada célula é definida para valores apropriados com base em seu tamanho atual e conteúdo. Aspose.Words não atualiza a largura preferida para que eles simplesmente fiquem limpos em vez.
- 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
- 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 to Content
Quando a tabela é autofitted o conteúdo, os seguintes passos são realmente realizados nos bastidores:
-
O Table.AllowAutoFit propriedade está habilitado a redimensionar automaticamente cada célula de acordo com seu conteúdo
-
A largura de tabela preferida é removida Table.PreferredWidth, CellFormat.PreferredWidth é removido para cada célula de tabela
Note que esta opção de autofit remove a largura preferida das células, assim como em Microsoft Word. Se você quiser manter os tamanhos das colunas e aumentar ou diminuir as colunas para ajustar o conteúdo, você deve definir o Table.AllowAutoFit propriedade para True por conta própria em vez de usar o atalho autofit. -
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.
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:
- Table.AllowAutoFit propriedade está desativada para que as colunas não cresçam ou encolhem para o seu conteúdo
- A largura preferida de toda a tabela é removida de Table.PreferredWidth, CellFormat.PreferredWidth é removido de todas as células da tabela
- 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.
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.
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.
O exemplo de código a seguir mostra como formatar uma tabela e célula com diferentes fronteiras e sombreamentos: