Ler dados em arquivos do Excel usando C#

Os arquivos do MS Excel são amplamente usados para armazenar dados na forma de linhas e colunas. Em vários casos, os grandes conjuntos de dados também são mantidos em arquivos do Excel. Muitas vezes, você precisa ler arquivos do Excel e buscar dados de seus aplicativos .NET. Para conseguir isso em algumas etapas simples, este artigo mostra como ler um arquivo do Excel em C#. Particularmente, aborda como ler um arquivo inteiro do Excel ou apenas uma única planilha dele.

Biblioteca C# para ler arquivos do Excel

Para ler os dados das planilhas, usaremos Aspose.Cells for .NET. É uma API poderosa e rica em recursos para criar e manipular arquivos do Excel. Além disso, permite que você leia arquivos do Excel com bastante facilidade. A API pode ser baixada da seção de downloads ou instalada via NuGet.

PM> Install-Package Aspose.Cells

Ler um arquivo do Excel em C#

Nos arquivos do Excel, os dados são armazenados dentro de células onde cada célula é identificada pelo seu nome (A1, B3, etc.) ou pelo índice de linha e coluna. A coleção de células forma uma planilha e um arquivo Excel pode conter uma ou várias planilhas. Finalmente, todas as planilhas formam coletivamente uma pasta de trabalho. Aspose.Cells para .NET usa as mesmas convenções de nomenclatura para manipular arquivos do Excel.

A seguir estão as etapas para ler um arquivo do Excel e imprimir seus dados usando C#.

  • Carregue o arquivo Excel usando a classe Workbook.
  • Crie um objeto da classe WorksheetCollection e obtenha a referência das planilhas usando Workbook.Worksheets.
  • Inicie um loop para percorrer todas as planilhas da coleção e em cada iteração, execute as seguintes etapas:
    • Obtenha a referência da planilha em um objeto Worksheet.
    • Obtenha a contagem de linhas e colunas de dados na planilha.
    • Inicie um loop para linhas.
    • Inicie um loop aninhado para colunas.
    • Leia os dados de cada célula usando a propriedade Worksheet.Cells[i, j].Value.

O exemplo de código a seguir mostra como ler um arquivo do Excel em C#.

// Carregar arquivo Excel
Workbook wb = new Workbook("excel.xlsx");

// Obter todas as planilhas
WorksheetCollection collection = wb.Worksheets;

// Percorra todas as planilhas
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{

    // Obter planilha usando seu índice
    Worksheet worksheet = collection[worksheetIndex];

    // Imprimir nome da planilha
    Console.WriteLine("Worksheet: " + worksheet.Name);

    // Obter número de linhas e colunas
    int rows = worksheet.Cells.MaxDataRow;
    int cols = worksheet.Cells.MaxDataColumn;

    // Percorrer as linhas
    for (int i = 0; i < rows; i++)
    {

        // Percorrer cada coluna na linha selecionada
        for (int j = 0; j < cols; j++)
        {
            // Valor da célula de Pring
            Console.Write(worksheet.Cells[i, j].Value + " | ");
        }
        // Imprimir quebra de linha
        Console.WriteLine(" ");
    }
}

A seguir está a saída que obtemos no console depois de executar o exemplo de código acima.

Lendo dados nas planilhas do arquivo Excel em C#

Lendo um arquivo do Excel em C#

Leia uma planilha específica no Excel em C#

Você também pode ler apenas uma planilha específica no arquivo Excel seguindo as etapas abaixo.

  • Carregue o arquivo Excel usando a classe Workbook.
  • Obtenha a referência da planilha desejada em um objeto Worksheet usando Workbook.Worksheets[index].
  • Obtenha a contagem de linhas e colunas de dados na planilha.
  • Inicie um loop para linhas.
  • Inicie um loop aninhado para colunas.
  • Leia os dados de cada célula usando a propriedade Worksheet.Cells[i, j].Value.

O exemplo de código a seguir mostra como ler dados de uma planilha específica em C#.

// Carregar arquivo Excel
Workbook wb = new Workbook("excel.xlsx");

// Obter planilha usando seu índice
Worksheet worksheet = wb.Worksheets[0];

// Imprimir nome da planilha
Console.WriteLine("Worksheet: " + worksheet.Name);

// Obter número de linhas e colunas
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;

// Percorrer as linhas
for (int i = 0; i < rows; i++)
{
    // Percorrer cada coluna na linha selecionada
    for (int j = 0; j < cols; j++)
    {
        // Valor da célula de Pring
        Console.Write(worksheet.Cells[i, j].Value + " | ");
    }
    // Imprimir quebra de linha
    Console.WriteLine(" ");
}

Obtenha uma licença de API gratuita

Você pode usar o Aspose.Cells para .NET sem limitações de avaliação obtendo uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu a ler arquivos do Excel dinamicamente em C#. Com a ajuda de exemplos de código, você viu como ler dados de uma planilha específica ou de todas as planilhas de uma pasta de trabalho do Excel. Além disso, você pode explorar outros recursos do Aspose.Cells para .NET usando a documentação. Caso você tenha alguma dúvida, sinta-se à vontade para nos informar através do nosso fórum.

Veja também