Trabalhar com colunas e linhas

Para ter mais controle sobre o funcionamento das tabelas, aprenda como manipular colunas e linhas.

Encontre o índice de elementos da tabela

Colunas, linhas e células são gerenciadas acessando o nó do documento selecionado por meio de seu índice. Encontrar o índice de qualquer nó envolve reunir todos os nós filhos do tipo de elemento do nó pai e, em seguida, usar o método IndexOf para encontrar o índice do nó desejado na coleção.

Encontre o índice de uma tabela em um documento

Às vezes, pode ser necessário fazer alterações em uma tabela específica de um documento. Para fazer isso, você pode consultar uma tabela pelo seu índice.

O exemplo de código a seguir mostra como recuperar o índice de uma tabela em um documento:

Encontre o índice de uma linha em uma tabela

Da mesma forma, pode ser necessário fazer alterações em uma linha específica de uma tabela selecionada. Para fazer isso, você também pode consultar uma linha pelo seu índice.

O exemplo de código a seguir mostra como recuperar o índice de uma linha em uma tabela:

Encontre o índice de uma célula em uma linha

Finalmente, pode ser necessário fazer alterações em uma célula específica, e você também pode fazer isso por índice de célula.

O exemplo de código a seguir mostra como recuperar o índice de uma célula em uma linha:

Trabalhar com colunas

No Aspose.Words Document Object Model (DOM), o nó Table consiste em nós Row e depois em nós Cell. Assim, no Modelo de Objeto Document do Aspose.Words, assim como nos documentos Word, não existe o conceito de coluna.

Por design, as linhas da tabela em Microsoft Word e Aspose.Words são completamente independentes e as propriedades e operações básicas estão contidas apenas nas linhas e células da tabela. Isso dá às tabelas a capacidade de ter alguns atributos interessantes:

  • Cada linha da tabela pode ter um número de células completamente diferente
  • Verticalmente, as células de cada linha podem ter larguras diferentes
  • É possível unir tabelas com diferentes formatos de linha e número de células

Quaisquer operações executadas em colunas são, na verdade, “atalhos” que executam a operação alterando coletivamente as células da linha de forma que pareça que estão sendo aplicadas às colunas. Ou seja, você pode realizar operações em colunas simplesmente iterando no mesmo índice de célula de linha da tabela.

O exemplo de código a seguir simplifica tais operações provando uma classe de fachada que coleta as células que compõem uma “coluna” de uma tabela:

O exemplo de código a seguir mostra como inserir uma coluna em branco em uma tabela:

O exemplo de código a seguir mostra como remover uma coluna de uma tabela em um documento:

Especifique linhas como linhas de cabeçalho

Você pode optar por repetir a primeira linha da tabela como linha de cabeçalho somente na primeira página ou em cada página se a tabela estiver dividida em várias. No Aspose.Words, você pode repetir a linha do cabeçalho em todas as páginas usando a propriedade HeadingFormat.

Você também pode marcar várias linhas de cabeçalho se essas linhas estiverem localizadas uma após a outra no início da tabela. Para fazer isso, você precisa aplicar as propriedades HeadingFormat a essas linhas.

O exemplo de código a seguir mostra como construir uma tabela que inclui linhas de cabeçalho que se repetem nas páginas subsequentes:

Evite que tabelas e linhas se quebrem nas páginas

Há momentos em que o conteúdo de uma tabela não deve ser dividido em páginas. Por exemplo, se um título estiver acima de uma tabela, o título e a tabela deverão ser sempre mantidos juntos na mesma página para preservar a aparência adequada.

Existem duas técnicas distintas que são úteis para obter essa funcionalidade:

  • Allow row break across pages, que é aplicado às linhas da tabela
  • Keep with next, que é aplicado a parágrafos em células de tabela

Por padrão, as propriedades acima estão desativadas.

Evite que uma linha se quebre nas páginas

Isso envolve impedir que o conteúdo dentro das células de uma linha seja dividido em uma página. No Microsoft Word, isso pode ser encontrado em Propriedades da tabela como a opção “Permitir que a linha se quebre nas páginas”. Em Aspose.Words, isso é encontrado no objeto RowFormat de um Row como propriedade RowFormat.AllowBreakAcrossPages.

O exemplo de código a seguir mostra como desabilitar a quebra de linhas nas páginas para cada linha de uma tabela:

Evite que uma tabela se quebre nas páginas

Para impedir que a tabela se divida entre páginas, precisamos especificar que queremos que o conteúdo contido na tabela permaneça junto.

Para fazer isso, Aspose.Words usa um método que permite aos usuários selecionar uma tabela e habilitar o parâmetro KeepWithNext para true para cada parágrafo dentro das células da tabela. A exceção é o último parágrafo da tabela, que deve ser definido como false.

O exemplo de código a seguir mostra como configurar uma tabela para permanecer junta na mesma página: