
Como abrir arquivos do Excel em C#
IronXL permite que desenvolvedores C# abram, leiam e manipulem arquivos Excel sem precisar instalar o Microsoft Office. Basta carregar os livros de trabalho usando WorkBook.Load(), acessar planilhas e ler valores de células com uma sintaxe intuitiva como sheet["A1"].
Este tutorial explora o uso do IronXL para abrir e ler arquivos Excel em projetos C#, fornecendo exemplos abrangentes e práticas recomendadas para desenvolvedores juniores trabalhando com dados do Excel.
O que é a Biblioteca Excel IronXL?
IronXL é uma biblioteca .NET que prioriza facilidade de uso, precisão e velocidade. Ela ajuda você a abrir, ler, criar e editar arquivos Excel eficientemente sem precisar do MS Office Interop, tornando-se uma escolha prática para desenvolvedores que buscam trabalhar com Excel em C# sem Interop.
IronXL é compatível com todos os .NET Frameworks juntamente com Linux, macOS, Docker, Azure, e AWS. Você pode usá-la para criar Aplicações de Console, Web e Desktop, como Blazor e .NET MAUI para aplicativos Web modernos. Ela suporta diferentes formatos de workbook como arquivos XLS e XLSX, XSLT e XLSM, CSV, e TSV.
Quais são os principais recursos do IronXL?
- Abra, leia e pesquise dados nos formatos XLS/XLSX/CSV/TSV usando LoadSpreadsheets.
- Exporte Planilhas Excel para múltiplos formatos com Salvar & Exportar.
- Criptografe e descriptografe arquivos com senhas usando recursos seguros.
- Trabalhe com folhas do Excel como objetos
DataSeteDataTableatravés da integração DataSet. - Fórmulas Excel recalculam automaticamente, suportando Funções Matemáticas.
- Edite dados de planilhas com uma sintaxe intuitiva de intervalo, como
WorkSheet["A1:B10"]. - Classifique Intervalos de Células, Colunas e Linhas.
- Estilize Células com Fonte, Fundo, Borda, Alinhamento, e Formatos de Número.
Como Abrir um Arquivo Excel em C#?
O que preciso antes de começar?
Para usar o IronXL em aplicações C#, instale os seguintes componentes no seu computador local:
- Visual Studio - O IDE oficial para desenvolvimento de aplicações .NET em C#. Você pode baixar e instalar o Visual Studio no site da Microsoft. Você também pode usar
JetBrainsReSharper& Rider. Para orientações adicionais de configuração, consulte o Visão Geral de Introdução. - IronXL - A biblioteca Excel que ajuda a trabalhar com planilhas Excel em C#. Deve ser instalada em sua aplicação C# antes de usá-la. Você pode baixá-lo do site do NuGet ou do Gerenciador de Pacotes NuGet no Visual Studio. Você também pode baixar o arquivo .NET Excel DLL diretamente. Para implementação de licenças, consulte Usando Chaves de Licença.
Quais Namespaces Devo Importar?
Uma vez que o Visual Studio e o IronXL estejam instalados, adicione os namespaces necessários do IronXL incluindo a seguinte linha no topo do seu arquivo C#:
// Add reference to the IronXL library
using IronXL;' Add reference to the IronXL library
Imports IronXLPara trabalhar com formatos Excel específicos ou recursos avançados, você também pode precisar de:
using IronXL.Formatting; // For cell styling
using IronXL.Drawing; // For images and charts
using System.Data; // For DataSet/DataTable operationsImports IronXL.Formatting ' For cell styling
Imports IronXL.Drawing ' For images and charts
Imports System.Data ' For DataSet/DataTable operationsComo Carregar um Arquivo Excel Existente?
Arquivos Excel, também conhecidos como cadernos de trabalho, consistem em várias planilhas, cada uma contendo valores de células. Para abrir e ler um arquivo Excel, carregue-o usando o método Load da classe WorkBook. A funcionalidade LoadSpreadsheets suporta vários formatos.
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
// WorkBook workbook = WorkBook.Load(stream);
// }' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
' You can also load from streams for web applications
' Using stream = File.OpenRead("test.xlsx")
' Dim workbook As WorkBook = WorkBook.Load(stream)
' End UsingIsso inicializa o livro de trabalho como uma instância de WorkBook. Para abrir uma WorkSheet específica, recupere-a da coleção WorkSheets. O guia Manage Worksheet fornece mais detalhes sobre operações de planilha:
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0]; // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1"); // By name' Access the first worksheet in the workbook
Dim sheet As WorkSheet = workbook.WorkSheets.First()
' Alternative ways to access worksheets
Dim sheetByIndex As WorkSheet = workbook.WorkSheets(0) ' By index
Dim sheetByName As WorkSheet = workbook.GetWorkSheet("Sheet1") ' By nameIsso acessa a primeira planilha no arquivo Excel, pronta para leitura e escrita.
Arquivo Excel
Como Ler Dados de Células do Excel?
Uma vez que o arquivo Excel esteja aberto, está pronto para leitura de dados. Ler dados de arquivos Excel em C# usando IronXL é direto. Você pode ler valores de células especificando a referência da célula usando a funcionalidade Select Range.
O código a seguir recupera o valor de uma célula:
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;
// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;
// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");
// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}' Select the cell using Excel notation and retrieve its integer value
Dim cellValue As Integer = sheet("C2").IntValue
' You can also retrieve values in different formats
Dim textValue As String = sheet("C2").StringValue
Dim decimalValue As Decimal = sheet("C2").DecimalValue
Dim dateValue As DateTime = sheet("C2").DateTimeValue
Dim boolValue As Boolean = sheet("C2").BoolValue
' Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}")
' Check if cell is empty before reading
If Not sheet("C2").IsEmpty Then
Console.WriteLine($"Cell value: {sheet("C2").Value}")
End IfO resultado é o seguinte:
Leia o Excel
Para ler dados de um intervalo de células, use um loop para iterar pelo intervalo especificado. O exemplo Select Excel Range fornece mais padrões:
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read an entire column
foreach (var cell in sheet.GetColumn(0)) // Column A
{
if (!cell.IsEmpty)
{
Console.WriteLine($"Column A value: {cell.Text}");
}
}
// Read an entire row
foreach (var cell in sheet.GetRow(1)) // Row 2
{
Console.WriteLine($"Row 2 value: {cell.Text}");
}' Iterate through a range of cells and display their address and text content
For Each cell In sheet("A2:A6")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next
' Read an entire column
For Each cell In sheet.GetColumn(0) ' Column A
If Not cell.IsEmpty Then
Console.WriteLine($"Column A value: {cell.Text}")
End If
Next
' Read an entire row
For Each cell In sheet.GetRow(1) ' Row 2
Console.WriteLine($"Row 2 value: {cell.Text}")
NextCada valor no intervalo de células A2:A6 é acessado e impresso no console.
Intervalo de leitura de células
Para exemplos mais detalhados de leitura e escrita, consulte o tutorial de leitura do Excel em C#. Você também pode converter dados do Excel para DataTables para facilitar a manipulação:
// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}' Convert worksheet to DataTable for easier data manipulation
Dim dataTable As DataTable = sheet.ToDataTable(True) ' True = first row contains headers
' Access data using DataTable methods
For Each row As DataRow In dataTable.Rows
Console.WriteLine($"Employee: {row("Name")}, Salary: {row("Salary")}")
NextComo Posso Criar um Novo Arquivo Excel?
O IronXL também facilita a criação de novos cadernos de trabalho para salvamento e recuperação de dados. O guia Create Spreadsheets fornece exemplos abrangentes.
Você pode criar um novo arquivo Excel com uma única linha de código:
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);
// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";' Create a new workbook with the XLSX format
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
' Alternative: Create with XLS format for compatibility
Dim xlsWorkBook As New WorkBook(ExcelFileFormat.XLS)
' Set workbook metadata
workBook.Metadata.Title = "Employee Data"
workBook.Metadata.Author = "Your Name"
workBook.Metadata.Keywords = "employees, salary, data"Em seguida, crie uma planilha e adicione dados a ela. Para padrões de criação mais avançados, veja Create a new Excel File.
Como Adicionar Planilhas a um Caderno de Trabalho?
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");
// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");' Create a worksheet named "GDPByCountry" in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("GDPByCountry")
' Create multiple worksheets at once
Dim sheet2 As WorkSheet = workBook.CreateWorkSheet("PopulationData")
Dim sheet3 As WorkSheet = workBook.CreateWorkSheet("Summary")
' Copy an existing worksheet
Dim copiedSheet As WorkSheet = workSheet.CopySheet("GDPByCountryCopy")Este código adiciona uma planilha chamada "GDPByCountry" ao caderno de trabalho, permitindo adicionar valores de células. Saiba mais sobre gerenciamento de planilhas e cópia de planilhas.
Para definir um valor para uma célula específica, use o código abaixo:
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Add different types of data
workSheet["A2"].Value = 12345; // Integer
workSheet["A3"].Value = 99.99m; // Decimal
workSheet["A4"].Value = DateTime.Now; // Date
workSheet["A5"].Value = true; // Boolean
// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";
// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";
// Save the workbook
workBook.SaveAs("output.xlsx");' Set the value of cell A1 to "Example"
workSheet("A1").Value = "Example"
' Add different types of data
workSheet("A2").Value = 12345 ' Integer
workSheet("A3").Value = 99.99D ' Decimal
workSheet("A4").Value = DateTime.Now ' Date
workSheet("A5").Value = True ' Boolean
' Add formulas
workSheet("B1").Formula = "=SUM(A2:A3)"
' Set multiple cells at once using a range
workSheet("C1:C5").Value = "Bulk Value"
' Save the workbook
workBook.SaveAs("output.xlsx")A saída final é:
Adicionar Valor à Célula
Trabalhando com Diferentes Formatos de Excel
IronXL suporta vários formatos Excel. Veja como lidar com diferentes tipos de arquivos:
// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx"); // Convert CSV to XLSX
// Export to different formats
workbook.SaveAsCsv("output.csv", ";"); // CSV with semicolon delimiter
workbook.SaveAsJson("output.json"); // Export as JSON
workbook.SaveAsXml("output.xml"); // Export as XML' Convert between formats
Dim workbook As WorkBook = WorkBook.Load("data.csv")
workbook.SaveAs("data.xlsx") ' Convert CSV to XLSX
' Export to different formats
workbook.SaveAsCsv("output.csv", ";") ' CSV with semicolon delimiter
workbook.SaveAsJson("output.json") ' Export as JSON
workbook.SaveAsXml("output.xml") ' Export as XMLSaiba mais sobre conversão de tipos de arquivos de planilha e conversão de XLSX para CSV, JSON, XML.
Tratamento de Erros e Melhores Práticas
Ao trabalhar com arquivos Excel, implemente a manipulação de erros adequada:
try
{
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Sheet1");
// Check if sheet exists
if (sheet == null)
{
Console.WriteLine("Worksheet not found!");
return;
}
// Process data
var value = sheet["A1"].Value;
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}Try
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Sheet1")
' Check if sheet exists
If sheet Is Nothing Then
Console.WriteLine("Worksheet not found!")
Return
End If
' Process data
Dim value = sheet("A1").Value
Catch ex As Exception
Console.WriteLine($"Error reading Excel file: {ex.Message}")
End TryPara aplicativos em produção, considere configurar o registro e implementar padrões adequados de manipulação de erros.
O que aprendemos?
Este artigo demonstra como abrir e ler arquivos Excel, como XLS e XLSX, em C# usando IronXL. IronXL não requer que o Microsoft Excel esteja instalado no sistema para tarefas relacionadas ao Excel, tornando-o perfeito para implementações no Docker e funções Azure.
O IronXL fornece uma solução abrangente para tarefas relacionadas ao Excel programaticamente, incluindo cálculo de fórmulas, ordenação de strings, recorte, localizar e substituir, mesclar e desmesclar, salvar arquivos e mais. Você também pode definir formatos de dados das células, trabalhar com formatação condicional e criar gráficos.
Para recursos avançados, explore agrupar e desagrupar, intervalos nomeados, hyperlinks e proteger arquivos Excel. A Referência da API completa oferece documentação detalhada para todos os recursos.
IronXL está disponível para um teste gratuito de 30 dias e pode ser licenciado para uso comercial. O pacote Lite do IronXL começa a partir de $999. Para recursos adicionais, visite a seção de tutoriais ou explore exemplos de código para cenários comuns.

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 bem estruturados e visualmente atraentes.
Artigos relacionados



