Ir para o conteúdo do rodapé
USANDO O IRONXL

Como importar um arquivo do Excel em C#

Importe arquivos Excel em C# usando IronXL, uma biblioteca .NET que lê arquivos XLS, XLSX, CSV sem precisar do Microsoft Excel instalado. Basta usar WorkBook.Load("file.xlsx") para abrir arquivos e acessar dados de células com sintaxe intuitiva como sheet["A1"].

O Microsoft Excel é um software de planilhas versátil que ajuda na organização, apresentação e análise de dados. No entanto, trabalhar com Excel programaticamente em C# pode ser desafiador, especialmente ao lidar com diferentes tipos de arquivos de planilhas ou quando o Microsoft Office não está instalado no seu servidor de implantação. A biblioteca de software IronXL fornece uma solução abrangente para importar e ler arquivos Excel em aplicativos C#, suportando vários formatos, incluindo XLSX, XLS e arquivos CSV.

O Que é IronXL e Por Que Devo Usá-lo para Importação de Excel?

IronXL é uma biblioteca Excel .NET que prioriza facilidade de uso, precisão e velocidade. Ela ajuda você a importar e ler documentos Excel, e criar e editar arquivos Excel de forma eficiente com desempenho extremamente rápido. Ao contrário das abordagens tradicionais que requerem o Microsoft Office Interop, o IronXL funciona de forma independente sem dependências do MS Office Interop. Isso significa que você obtém todas as funcionalidades para ler arquivos Excel sem instalar o Excel. Isso faz do IronXL uma ferramenta poderosa para desenvolvedores importarem e lerem arquivos Excel em aplicativos C#, seja construindo aplicações web ASP.NET, aplicações desktop, ou soluções baseadas em nuvem.

IronXL está disponível em todas as plataformas, como Windows, Linux, macOS, Docker, Azure, e AWS. É compatível com todas as versões do .NET Framework e suporta ambientes modernos de .NET Core e .NET 5+. IronXL é uma biblioteca versátil que pode ser integrada a aplicativos Console, Desktop e Web ASP.NET, bem como a aplicações Blazor. Ela suporta diferentes formatos de livros de trabalho, como arquivos XLS e XLSX, XSLT e XLSM, CSV, e TSV, tornando-se ideal para cenários onde você precisa converter entre tipos de arquivos de planilhas.

Quais Recursos Chave Tornam o IronXL Essencial para Importação de Excel?

Como Importo Livros de Trabalho do Excel em C#?

O Que Preciso Antes de Começar a Importação de Excel?

Para usar o IronXL em C# para ler arquivos Excel, certifique-se de que os seguintes componentes estão instalados no seu computador:

  1. Visual Studio - Este é o IDE oficial para desenvolver aplicações C# .NET. O Visual Studio fornece excelente suporte IntelliSense e ferramentas de depuração que tornam o trabalho com arquivos Excel mais fácil. Você pode baixar e instalar o Visual Studio no site da Microsoft. A Edição Comunidade é gratuita e suficiente para a maioria das necessidades de desenvolvimento.

  2. IronXL - Esta é a biblioteca que ajuda a trabalhar com planilhas Excel em um determinado caminho em C#. Ela deve ser instalada em seu programa C# antes de seu uso. IronXL pode ser facilmente baixado do site NuGet ou instalado diretamente através da interface 'Gerenciar pacotes NuGet' nas ferramentas do Visual Studio. Você também pode baixar o arquivo .NET Excel DLL diretamente se preferir a instalação manual.

Para implantações em produção, você precisará aplicar uma chave de licença para remover marcas d'água e habilitar a funcionalidade completa. O desenvolvimento e o teste podem ser realizados com a versão de avaliação.

Quais Namespaces Devo Adicionar ao Meu Código?

Depois que o Visual Studio e o IronXL estiverem instalados, faça referência ao assembly do IronXL para usar o IronXL em seu código-fonte. Adicione a seguinte linha de código no início do arquivo do novo projeto onde as funções do IronXL serão utilizadas:

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Esta única importação de namespace fornece acesso a toda a funcionalidade básica necessária para operações do Excel. Se estiver trabalhando com recursos específicos do Excel, como gráficos ou formatação condicional, talvez seja necessário importar namespaces adicionais da biblioteca IronXL.

Como Carregar e Abrir um Arquivo Excel?

Planilhas do Microsoft Excel também são chamadas de Livros de Trabalho do Excel. Cada livro contém várias planilhas (também chamadas de folhas), e uma única planilha contém células tabulares organizadas em linhas e colunas com seus respectivos valores. Para abrir e ler um arquivo Excel, carregue-o usando a classe WorkBook e o método Load presente na biblioteca IronXL. O código é o seguinte:

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
$vbLabelText   $csharpLabel

Isso abre o arquivo Excel na variável de referência da instância da pasta de trabalho. Já que um livro de trabalho pode ter várias planilhas, você pode acessá-las de várias maneiras. O código a seguir abre a primeira planilha na variável de instância da folha:

// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
$vbLabelText   $csharpLabel

Isso abrirá a primeira planilha do arquivo Excel, e agora os dados do Excel podem ser lidos e gravados nessa planilha. Para cenários mais avançados, você pode precisar gerenciar várias planilhas ou criar novas planilhas programaticamente.

Arquivo Excel Aberto

Planilha Excel mostrando dados de funcionários com colunas para Nome, Designação e Salário, contendo 5 registros de funcionários com diversos títulos de trabalho e salários Arquivo Excel de amostra contendo informações de funcionários que serão importadas usando C#. Os dados incluem nomes, designações de cargo (Gerente, Diretor, Funcionário, Presidente) e valores salariais correspondentes.

Como Posso Ler Valores Específicos de Células Após a Importação?

Uma vez que o arquivo Excel seja importado, ele está pronto para leitura de dados. Ler dados de arquivos Excel em C# usando IronXL é muito simples e fácil. Você pode ler os valores das células do Excel mencionando simplesmente o número de referência da célula na notação padrão do Excel (como "A1", "B2", etc.). A biblioteca fornece várias maneiras de acessar os valores das células, dependendo do tipo de dados esperado.

O código abaixo recupera o valor de uma célula com o número de referência "C2":

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
$vbLabelText   $csharpLabel

O resultado é o seguinte:

Janela do Console de Depuração do Microsoft Visual Studio mostrando a saída de uma operação de leitura de arquivo Excel, exibindo o caminho do arquivo e uma mensagem de conclusão A saída do console de depuração após a leitura bem-sucedida de um arquivo Excel em C#. O programa concluiu a execução e está aguardando a entrada do usuário para fechar.

Agora, vamos ler dados de um intervalo de células no arquivo Excel aberto. O IronXL facilita o trabalho com intervalos de células usando uma notação familiar do Excel. O código é o seguinte:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
$vbLabelText   $csharpLabel

O código é muito simples, limpo e claro. O intervalo de células pode ser referenciado com uma sintaxe simples como mostrado em um loop foreach: sheet["A2:A6"] e cada célula pode ser iterada para obter seu valor. Aqui, você verá os nomes na coluna A das linhas 2 a 6 na saída do console:

Console de Depuração do Microsoft Visual Studio mostrando saída da leitura das células Excel de A2 a A6, exibindo os nomes: John, Sara, Peter, Mathew e Katherine Saída do console demonstrando a leitura bem-sucedida de um intervalo de células do Excel (A2:A6) contendo nomes usando C#

Para mais detalhes sobre leitura e escrita de valores de células, veja este tutorial sobre leitura de arquivos Excel em C# exemplo. Você também pode explorar recursos avançados, como aplicação de fórmulas ou trabalho com intervalos nomeados.

Como Posso Importar Inteiras Planilhas de Uma Vez?

O IronXL pode ser usado para ler planilhas do Excel de uma só vez, utilizando índices de linhas e colunas. Isso é particularmente útil quando você precisa processar todos os dados em uma planilha ou quando está convertendo Excel para outros formatos, como CSV ou JSON. Os seguintes exemplos de código IronXL ajudam a obter todos os dados do arquivo Excel no mesmo formato na saída do console:

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
$vbLabelText   $csharpLabel

Para arquivos Excel maiores, talvez você queira considerar o uso de objetos DataTable ou DataSet para melhor performance e manipulação de dados mais fácil:

// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Arquivo de saída

Console de Depuração do Microsoft Visual Studio exibindo tabela de dados de funcionários com colunas para Nome, Designação e Salário, mostrando 5 registros de funcionários lidos de um arquivo Excel A saída do console exibe com sucesso os dados dos funcionários importados do arquivo Excel, com o formato adequado mostrando nomes, cargos e informações salariais.

.

Quais São os Próximos Passos Após Importar Arquivos Excel?

Este artigo demonstrou como importar e ler um arquivo Excel em C# sem precisar do Microsoft Excel instalado. Ele abrangeu várias maneiras de ler dados de uma planilha Excel, desde células individuais até planilhas inteiras. O IronXL também ajuda você a criar arquivos Excel em C# sem qualquer necessidade de instalação do Excel.

Depois de importar com sucesso os dados do Excel, você pode querer explorar recursos adicionais:

IronXL fornece uma solução completa para todas as tarefas relacionadas a documentos do Microsoft Excel a serem implementadas programaticamente. Você pode realizar cálculos de fórmulas, classificação de strings ou números, aparar e anexar, encontrar e substituir, mesclar e desmesclar células, salvar arquivos e muito mais. Você pode editar valores de células e também definir formatos de dados das células junto com a validação de dados da planilha. Ele também suporta arquivos CSV e ajuda você a trabalhar com dados do Excel sem problemas.

Para aplicações empresariais, considere explorar opções de implantação para várias plataformas, incluindo contêineres Docker, Funções Azure e AWS Lambda.

IronXL está disponível para teste gratuito e pode ser licenciado para uso comercial com seu pacote Lite a partir de $799 apenas. A biblioteca oferece excelente documentação, tutoriais, e exemplos de código para ajudar você a começar rapidamente com operações de arquivos Excel em suas aplicações C#.

Perguntas frequentes

Como posso importar e ler um arquivo Excel em C# sem usar Interop?

Você pode importar e ler arquivos do Excel em C# usando a biblioteca IronXL. Basta carregar o arquivo do Excel usando WorkBook.Load("file.xlsx") para acessar e processar os dados sem precisar ter o Microsoft Excel instalado.

Com quais plataformas a biblioteca IronXL é compatível?

O IronXL é compatível com todos os frameworks .NET e pode ser usado em diversas plataformas, incluindo Windows, Linux, MacOS, Docker, Azure e AWS.

Posso usar o IronXL para editar arquivos do Excel sem ter o Microsoft Excel instalado?

Sim, o IronXL permite criar e editar arquivos do Excel programaticamente em C#, sem a necessidade de ter o Microsoft Excel instalado no seu sistema.

Quais formatos do Excel o IronXL consegue processar?

O IronXL suporta vários formatos de arquivo do Excel, como XLS, XLSX, CSV, TSV e muitos outros, permitindo a importação e manipulação de dados de forma fácil.

Quais são os pré-requisitos para usar o IronXL em um projeto C#?

Para usar o IronXL, certifique-se de ter o Visual Studio instalado. Você pode adicionar o IronXL ao seu projeto através do gerenciador de pacotes NuGet ou baixando e referenciando a DLL do Excel for .NET.

Como posso carregar uma planilha do Excel com o IronXL em C#?

Para carregar uma planilha do Excel em C#, use o método WorkBook.Load("path/to/file.xlsx") da classe IronXL, que permite abrir e manipular a planilha.

É possível manipular fórmulas do Excel usando o IronXL?

Sim, o IronXL consegue processar e recalcular fórmulas do Excel sem problemas sempre que uma planilha é editada, garantindo a precisão nos cálculos de dados.

Como faço para ler dados de uma célula específica usando o IronXL?

Para ler dados de uma célula específica, use a sintaxe do IronXL, como sheet["B2"].StringValue para obter o valor da célula B2.

Posso iterar sobre um intervalo de células em uma planilha do Excel usando o IronXL?

Sim, você pode iterar sobre um intervalo de células usando o IronXL com uma sintaxe como foreach (var cell in sheet["A1:C3"]) para processar cada célula individualmente.

Como o IronXL pode ser integrado em aplicações ASP.NET?

O IronXL pode ser facilmente integrado em aplicações ASP.NET adicionando a biblioteca via NuGet e referenciando-a em seu projeto, permitindo a manipulação de arquivos Excel em aplicações web.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me