Neste artigo, explicarei como excluir linhas e colunas em branco em um arquivo do Excel usando C#. Também explicarei como atualizar as referências automaticamente (usadas em fórmulas, gráficos e tabelas) ao excluir linhas e colunas em branco.

API C# para remover linhas e colunas em branco

Aspose.Cells for .NET é uma API de manipulação de planilhas bem conhecida que permite criar e processar arquivos Excel a partir de seus aplicativos .NET. A API permite remover linhas e colunas em branco nos arquivos do Excel em algumas linhas de código. Você pode baixar os binários da API ou instalá-la usando NuGet.

PM> Install-Package Aspose.Cells

Excluir linhas em branco no Excel usando C

A seguir estão as etapas para excluir todas as linhas em branco no Excel usando C#.

  • Abra um arquivo Excel usando o objeto Workbook.
  • Acesse a planilha que tem as linhas em branco. A planilha pode ser acessada por índice (base zero) ou por nome.
  • Chame o método Cells.DeleteBlankRows() para excluir todas as linhas em branco que não contêm nenhum dado.

O código de exemplo a seguir mostra como remover linhas em branco no Excel usando C#.

using Aspose.Cells;

// Abra um arquivo excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenha a coleção de planilhas na planilha.
WorksheetCollection sheets = wb.Worksheets;

// Obtenha a primeira planilha de WorksheetCollection por índice.
Worksheet sheet = sheets[0];
// Ou pelo nome.
// Planilha folha = folhas["Planilha1"];

// Exclua as linhas em branco da planilha.
sheet.Cells.DeleteBlankRows();

// Salve o arquivo excel.
wb.Save("SampleOutput.xlsx");
Excluir linhas em branco

Fig 1: Excluir linhas em branco

Observe que o método Cells.DeleteBlankRows remove as linhas em branco mesmo que algum tipo de formatação seja aplicado a elas. Ele também remove as linhas em branco formatadas abaixo de seus dados.

Excluir linhas em branco formatadas

Fig 2: Excluir linhas em branco formatadas

Se você deseja excluir linhas em branco de todas as planilhas em um documento do Excel, basta iterar sobre WorksheetCollection e chamar o método DeleteBlankRows em cada planilha conforme mostrado no código a seguir:

// Abra um arquivo excel existente.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Iterar sobre as planilhas.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Exclua as linhas em branco da planilha.
    sheet.Cells.DeleteBlankRows();
}

// Salve o arquivo excel.
workbook.Save("SampleOutput.xlsx");

Atualizar referências automaticamente ao excluir linhas em branco

A exclusão de linhas em branco pode quebrar referências em fórmulas, gráficos e tabelas. Por exemplo, a célula B2 na segunda planilha tem uma fórmula =Planilha1!C3 que se refere à célula C3 na primeira planilha, conforme mostrado na figura a seguir.

Uma célula em Sheet2 está se referindo a um valor em Sheet1.

Fig 3: Uma célula em Sheet2 está se referindo a um valor em Sheet1.

Se removermos as linhas em branco em Sheet1, o valor lima@gmail.com será movido para a célula C1. Mas a fórmula (=Planilha1!C3) não será atualizada e a célula B2 conterá um valor inválido conforme mostrado abaixo.

Após remover as linhas em branco, a fórmula na célula B2 não foi atualizada.

Fig 4: Após remover as linhas em branco, a fórmula na célula B2 não foi atualizada.

Podemos evitar esse problema usando a propriedade DeleteOptions.UpdateReference e definindo-a como true. Isso garantirá que as referências sejam atualizadas ao excluir linhas em branco. O código de exemplo a seguir mostra como usar a propriedade DeleteOptions.UpdateReference.

// Abra um arquivo excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenha a coleção de planilhas na planilha.
WorksheetCollection sheets = wb.Worksheets;

// Obtenha a primeira planilha de WorksheetCollection por índice.
Worksheet sheet = sheets[0];

// Esta opção garantirá as referências (em fórmulas, gráficos)
// são atualizados ao excluir linhas em branco.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Exclua as linhas em branco da planilha.
sheet.Cells.DeleteBlankRows(options);

// Salve o arquivo excel.
wb.Save("SampleOutput.xlsx");

Conforme mostrado na imagem a seguir, a fórmula foi atualizada e a célula B2 contém um valor válido.

A fórmula foi atualizada e a célula contém um valor válido.

Fig 5: A fórmula foi atualizada e a célula contém um valor válido.

Excluir colunas em branco no Excel usando C

As etapas para excluir colunas em branco são as mesmas para excluir linhas em branco. Usamos o método Cells.DeleteBlankColumns para excluir todas as colunas em branco que não contêm nenhum dado. O código de exemplo a seguir mostra como excluir linhas e colunas em branco em C#.

// Abra um arquivo excel existente.
Workbook wb = new Workbook("SampleInput.xlsx");

// Obtenha a coleção de planilhas na planilha.
WorksheetCollection sheets = wb.Worksheets;

// Obtenha a primeira planilha de WorksheetCollection por índice.
Worksheet sheet = sheets[0];

// Esta opção garantirá as referências (em fórmulas, gráficos)
// são atualizados ao excluir linhas e colunas em branco.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Exclua as linhas e colunas em branco.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Calcular fórmulas da pasta de trabalho
wb.CalculateFormula();

// Salve o arquivo excel.
wb.Save("SampleOutput.xlsx");
Excluir linhas e colunas em branco

Fig 6: Excluir linhas e colunas em branco

Conclusão

Neste artigo, você aprendeu como excluir linhas e colunas em branco no arquivo do Excel usando C#. Além disso, você aprendeu como atualizar referências (usadas em fórmulas, gráficos e tabelas) automaticamente ao excluir linhas e colunas em branco. Por favor, verifique a documentação do Aspose.Cells para .NET para mais informações. Se você tiver alguma dúvida, sinta-se à vontade para publicá-la em nosso Fórum de Suporte. Vamos respondê-los em algumas horas.

Veja também