Leitura de Arquivo XLSX em C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Para ler arquivos XLSX em C#, use o método WorkBook.Load do IronXL para abrir arquivos do Excel e acessar planilhas para ler dados de células, realizar cálculos e converter para os formatos DataTable ou DataSet programaticamente.

Início Rápido: Carregue um workbook e acesse uma planilha sem esforço

Com o IronXL, você pode carregar um arquivo XLSX usando o método WorkBook.Load em uma única linha. Em seguida, acesse instantaneamente a primeira planilha ou a planilha nomeada e comece a ler os valores das células.

  1. Instale IronXL com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronXL.Excel
  2. Copie e execute este trecho de código.

    IronXl.WorkBook workbook = IronXl.WorkBook.Load("your-file.xlsx");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronXL em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Ler arquivos .XLSX em C#

  • Obtenha o IronXL para o seu projeto
  • Carregar um WorkBook
  • Acessar dados de um WorkSheet
  • Aplicar funções como Soma, Mínimo e Máximo
  • Ler um WorkSheet como um DataTable, DataSet e mais
How To Work related to Leitura de Arquivo XLSX em C

Como obtenho o IronXL para o meu projeto?

Use o IronXL no seu projeto para uma maneira simples de trabalhar com formatos de arquivo Excel em C#. Você pode instalar o IronXL via download direto ou alternativamente usar NuGet Install para Visual Studio. O software é gratuito para desenvolvimento.

Install-Package IronXL.Excel

Antes de começar a ler arquivos XLSX, explore a documentação abrangente do IronXL para entender todos os recursos disponíveis. O IronXL suporta tanto os formatos .xls quanto .xlsx, tornando-o versátil para arquivos Excel legados e modernos.


Tutorial de Como Fazer

Como carrego um WorkBook?

WorkBook é a classe do IronXL cujo objeto fornece acesso completo ao arquivo Excel e a todas as suas funções. Por exemplo, para acessar um arquivo Excel, use o código:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-load-workbook.cs
using IronXL;

// Load the workbook
WorkBook workBook = WorkBook.Load("sample.xlsx"); // Excel file path
Imports IronXL

' Load the workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path
$vbLabelText   $csharpLabel

Por que usar o método WorkBook.Load()?

No código acima, a função Load() carrega WorkBook em WorkBook. Qualquer tipo de função pode ser executada em WorkBook acessando o WorkSheet específico de um arquivo Excel. O método Load() detecta automaticamente o formato do arquivo, seja ele XLS, XLSX, XLSM, XLTX ou CSV. Para cenários de carregamento mais avançados, consulte o guia detalhado sobre carregamento de planilhas .


Como acesso uma planilha específica?

Para acessar um WorkSheet específico de um arquivo Excel, o IronXL fornece a classe WorkBook. Ele pode ser usado de várias maneiras diferentes:

Quais são as diferentes maneiras de acessar uma planilha?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-worksheet.cs
using IronXL;

// Access sheet by name
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
Imports IronXL

' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

WorkBook["SheetName"] é o WorkSheet que foi declarado na parte acima.

OU

WorkBook

OU

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-worksheet-index.cs
using IronXL;

// Access sheet by index
WorkSheet workSheet = workBook.WorkSheets[0];
Imports IronXL

' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
$vbLabelText   $csharpLabel

OU

WorkBook.Load()

OU

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-default-worksheet.cs
using IronXL;

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
Imports IronXL

' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

OU

sample.xlsx

OU

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-worksheet.cs
using IronXL;
using System.Linq;

// Access the first worksheet
WorkSheet workSheet = workBook.WorkSheets.First();
Imports IronXL
Imports System.Linq

' Access the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
$vbLabelText   $csharpLabel

OU

workBook

OU

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-or-default-worksheet.cs
using IronXL;
using System.Linq;

// Access the first or default worksheet
WorkSheet workSheet = workBook.WorkSheets.FirstOrDefault();
Imports IronXL
Imports System.Linq

' Access the first or default worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

OU

workBook

OU

WorkBook.Load

OU

WorkSheet

OU

WorkSheet

OU

workBook

OU

WorkBook

Quando devo usar cada método de acesso à planilha?

Cada método tem seu caso de uso ideal:

  • GetWorkSheet("name") : Quando você souber o nome exato da planilha
  • WorkSheets[index] : Para iterar programaticamente pelas planilhas
  • DefaultWorkSheet : Acesso rápido ao trabalhar com arquivos de folha única
  • First() ou FirstOrDefault() : Opções seguras quando os nomes das planilhas podem mudar

Após obter ExcelSheet workSheet, você pode extrair qualquer tipo de dado e executar todas as funções do Excel nele. Para operações mais complexas em planilhas, consulte o guia sobre abrir planilhas do Excel em C#.


Como acesso dados de uma Planilha?

Os dados podem ser acessados ​​de ExcelSheet workSheet com este processo:

Quais tipos de dados posso ler das células?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-data.cs
using IronXL;

// Accessing data as a string
string dataString = workSheet["A1"].ToString();

// Accessing data as an integer
int dataInt = workSheet["B1"].Int32Value;
Imports IronXL

' Accessing data as a string
Dim dataString As String = workSheet("A1").ToString()

' Accessing data as an integer
Dim dataInt As Integer = workSheet("B1").Int32Value
$vbLabelText   $csharpLabel

O IronXL fornece vários acessadores de valores para diferentes tipos de dados:

  • StringValue : Para dados de texto
  • Int32Value : Para números inteiros
  • DoubleValue : Para decimais
  • DateTimeValue : Para datas
  • BoolValue : Para valores verdadeiro/falso

Como leio várias células de uma vez?

Você também pode obter dados de várias células de uma coluna específica:

foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
For Each cell In workSheet("A2:A10")
	Console.WriteLine("Value is: {0}", cell.Text)
Next cell
$vbLabelText   $csharpLabel

Isso exibe os valores da célula A2 até A10. Para técnicas de seleção de faixa mais avançadas, visite o tutorial de seleção de faixas.

Como é uma implementação completa?

Um exemplo completo do código específico acima é fornecido aqui:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-log-data.cs
using IronXL;
using System;

// Load an Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
Imports IronXL
Imports System

' Load an Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify the range
For Each cell In workSheet("B2:B10")
    Console.WriteLine("Value is: {0}", cell.Text)
Next
$vbLabelText   $csharpLabel

Ele exibe o seguinte resultado:

Saída do console mostrando dados extraídos da planilha com valores de Governo, Privado, Midmarket e Parceiros de Canal

Com o arquivo Excel Sample.xlsx:

Planilha do Excel com dados comerciais mostrando colunas de Segmento, País, Produto e Faixa de Desconto em 16 linhas

Essas metodologias mostram como é fácil usar dados de arquivos do Excel em seu projeto. Para exemplos práticos de leitura de arquivos do Excel sem Interop, explore os exemplos de leitura do Excel.


Como posso executar funções em dados?

Acesse dados filtrados de uma planilha do Excel aplicando funções de agregação como Sum, Min ou Max usando o seguinte código:

Quais funções agregadas estão disponíveis?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-aggregate-function.cs
using IronXL;

// Apply aggregate functions
decimal sum = workSheet["G2:G10"].Sum(); // Sum of cells from G2 to G10
decimal min = workSheet["G2:G10"].Min(); // Minimum value in cells from G2 to G10
decimal max = workSheet["G2:G10"].Max(); // Maximum value in cells from G2 to G10
Imports IronXL

' Apply aggregate functions
Dim sum As Decimal = workSheet("G2:G10").Sum() ' Sum of cells from G2 to G10
Dim min As Decimal = workSheet("G2:G10").Min() ' Minimum value in cells from G2 to G10
Dim max As Decimal = workSheet("G2:G10").Max() ' Maximum value in cells from G2 to G10
$vbLabelText   $csharpLabel

O IronXL suporta inúmeras funções matemáticas, incluindo:

  • Average() : Calcular o valor médio
  • Count() : Contar células não vazias
  • CountIf() : Contar células que atendem aos critérios
  • Median() : Encontre o valor do meio
  • StdDev() : Calcular desvio padrão

Como implemento várias funções juntas?

Para mais detalhes, confira nosso tutorial detalhado sobre Como Escrever Arquivos Excel em C# com especificidades sobre funções agregadas. Você também pode explorar a lista completa de funções matemáticas disponíveis no IronXL.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-min-max.cs
using IronXL;
using System;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Calculate sum, minimum, and maximum for a range of cells
decimal sum = workSheet["G2:G10"].Sum();
decimal min = workSheet["G2:G10"].Min();
decimal max = workSheet["G2:G10"].Max();

// Output results
Console.WriteLine("Sum is: {0}", sum);
Console.WriteLine("Min is: {0}", min);
Console.WriteLine("Max is: {0}", max);
Imports IronXL
Imports System

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Calculate sum, minimum, and maximum for a range of cells
Dim sum As Decimal = workSheet("G2:G10").Sum()
Dim min As Decimal = workSheet("G2:G10").Min()
Dim max As Decimal = workSheet("G2:G10").Max()

' Output results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
$vbLabelText   $csharpLabel

Este código exibe a seguinte saída:

Terminal mostrando resultados de análise de dados: Soma=482, Min=12, Max=350 em fundo preto

Eis como o arquivo Excel Sample.xlsx se parece:

Planilha do Excel com dados de vendas mostrando segmentos, países, produtos, unidades vendidas e preços em várias linhas

Como leio a Planilha do Excel como DataTable?

Usando o IronXL, é fácil trabalhar com um Excel WorkSheet como um DataTable. Esse recurso é particularmente útil quando você precisa integrar dados do Excel com pipelines de processamento de dados existentes ou vincular dados a controles de interface do usuário.

Qual é o método básico de conversão?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable
DataTable dt = workSheet.ToDataTable();
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable()
$vbLabelText   $csharpLabel

Como uso a primeira linha como cabeçalhos de coluna?

Para usar a primeira linha de ExcelSheet como DataTable ColumnName:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable-header.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable with the first row as column names
DataTable dt = workSheet.ToDataTable(true);
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable with the first row as column names
Dim dt As DataTable = workSheet.ToDataTable(True)
$vbLabelText   $csharpLabel

O parâmetro booleano de ToDataTable() define a primeira linha como os nomes das colunas de seu DataTable. Por padrão, seu valor é False. Isso é especialmente útil ao trabalhar com dados estruturados que incluem cabeçalhos.

Como faço para iterar através do DataTable?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-print-datatable.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Convert WorkSheet to DataTable
DataTable dt = workSheet.ToDataTable(true); // Use first row as column names

// Iterate through rows and columns and display data
foreach (DataRow row in dt.Rows) // Access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
    {
        Console.Write(row[i] + " ");
    }
    Console.WriteLine();
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Convert WorkSheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable(True) ' Use first row as column names

' Iterate through rows and columns and display data
For Each row As DataRow In dt.Rows ' Access rows
    For i As Integer = 0 To dt.Columns.Count - 1 ' Access columns of corresponding row
        Console.Write(row(i) & " ")
    Next
    Console.WriteLine()
Next
$vbLabelText   $csharpLabel

Usando o código acima, todos os valores das células de WorkSheet podem ser acessados ​​e usados ​​conforme necessário. Para operações mais avançadas DataTable, consulte o guia sobre importação e exportação como DataSet .


Como Ler um Arquivo Excel como DataSet?

IronXL fornece uma função simples para usar um arquivo Excel completo (WorkBook) como um DataSet. Use o método ToDataSet para transformar toda a planilha em DataSet.
Neste exemplo, veremos como usar o arquivo Excel como um DataSet.

Como converto um livro de trabalho em DataSet?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-excel-to-dataset.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Convert the WorkBook to a DataSet
DataSet ds = workBook.ToDataSet();

// Iterate through tables in the DataSet and display table names
foreach (DataTable dt in ds.Tables)
{
    Console.WriteLine(dt.TableName);
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Convert the WorkBook to a DataSet
Dim ds As DataSet = workBook.ToDataSet()

' Iterate through tables in the DataSet and display table names
For Each dt As DataTable In ds.Tables
    Console.WriteLine(dt.TableName)
Next
$vbLabelText   $csharpLabel

A saída do código acima se parece com isto:

Captura de tela corrompida ou incompleta mostrando apenas os rótulos Sheet1, Sheet2, Sheet3

E o arquivo Excel Sample.xlsx tem a seguinte aparência:

(center content omitted for brevity)

Como acesso cada valor de célula em todas as planilhas?

No exemplo acima, podemos facilmente analisar um arquivo Excel em um DataSet e trabalhar com cada DataTable de um arquivo Excel como um DataTable. Mergulhe mais fundo em como analisar o Excel como um DataSet aqui, com exemplos de código.

Vejamos mais um exemplo de como acessar o valor de cada célula de todos os ExcelSheets. Aqui, podemos acessar o valor de cada célula de cada ExcelSheet de um arquivo Excel.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
' ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
$vbLabelText   $csharpLabel

Usando o exemplo acima, é conveniente acessar o valor de cada célula de cada ExcelSheet de um arquivo do Excel. Essa abordagem é particularmente útil ao lidar com pastas de trabalho com várias planilhas, onde os dados estão distribuídos em diferentes guias.

Para mais sobre como Ler Arquivos Excel Sem Interop, confira o código aqui. A documentação de referência da API fornece detalhes abrangentes sobre todos os métodos e propriedades disponíveis na Referência da API do IronXL.


Tutorial de Acesso Rápido

Referência da API para IronXL

Leia mais sobre os recursos, classes, campos de método, namespaces e enums do IronXL na documentação.

Referência da API para IronXL
Documentation related to Tutorial de Acesso Rápido

WorkSheet

WorkSheet

WorkSheet

Perguntas frequentes

Como faço para ler arquivos XLSX em C#?

Para ler arquivos XLSX em C#, utilize o método WorkBook.Load do IronXL. Basta carregar o arquivo Excel com IronXl.WorkBook.Load("seu-arquivo.xlsx"), e então acessar as planilhas para ler os dados das células, realizar cálculos e converter para os formatos DataTable ou DataSet programaticamente.

Quais formatos de arquivo são suportados ao carregar arquivos do Excel?

O IronXL suporta vários formatos de arquivo do Excel, incluindo .xls, .xlsx, .xlsm, .xltx e .csv. O método WorkBook.Load detecta automaticamente o formato do arquivo, tornando-o versátil tanto para arquivos Excel antigos quanto para os modernos.

Como posso instalar a biblioteca de leitura do Excel no meu projeto C#?

Você pode instalar o IronXL por meio de download direto ou via NuGet Install para Visual Studio. O software é gratuito para fins de desenvolvimento e oferece uma maneira simples de trabalhar com formatos de arquivo Excel em C#.

Quais são as diferentes maneiras de acessar uma planilha específica?

O IronXL oferece várias maneiras de acessar planilhas: você pode usar workBook.GetWorkSheet("SheetName") para acessar pelo nome, workBook.WorkSheets[0] para acessar pelo índice ou workBook.WorkSheets.First() para obter a primeira planilha.

Posso realizar cálculos com os dados do Excel depois de carregá-los?

Sim, após carregar um arquivo XLSX com o IronXL, você pode aplicar diversas funções como Soma, Mínimo e Máximo aos dados. A biblioteca fornece acesso completo às funcionalidades do arquivo Excel por meio do objeto WorkBook.

É possível converter dados de uma planilha do Excel para outros formatos?

Sim, o IronXL permite ler uma planilha e convertê-la para vários formatos, incluindo DataTable, DataSet e outros. Isso facilita a integração de dados do Excel em seus aplicativos C#.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 2,052,917 | Versão: 2026.6 just released
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronXL.Excel
executar um exemplo Veja seus dados se transformarem em uma planilha.