# A Guide to Reading and Writing Excel Files in C#
Ler e criar arquivos Excel (XLS, XLSX e CSV) em C# e outras linguagens .NET é fácil utilizando a biblioteca de software IronXL da Iron Software.
IronXL não requer que o Excel Interop esteja instalado no seu servidor. IronXL fornece uma API mais rápida e intuitiva do que **Microsoft.Office.Interop.Excel**.
IronXL funciona nas seguintes plataformas:
* .NET Framework 4.6.2 e superior para Windows e Azure
* .NET Core 2 e superior para Windows, Linux, MacOS e Azure
* .NET 5, .NET 6, .NET 7, .NET 8, Mono, Maui e Xamarin
## Instale o IronXL
Primeiro instale o IronXL, usando nosso pacote NuGet ou <a class="js-modal-open" href="/csharp/excel/packages/IronXL.zip" data-modal-id="trial-license-after-download">baixando o DLL</a>. Classes do IronXL podem ser encontradas no namespace `IronXL`.
A maneira mais fácil de instalar o IronXL é usando o Gerenciador de Pacotes NuGet para o Visual-Studio:
O nome do pacote é **IronXL.Excel**.
```shell
:ProductInstall
```
<a class="js-modal-open" href="https://www.nuget.org/packages/IronXL.Excel/" target="_blank" data-modal-id="trial-license-after-download">https://www.nuget.org/packages/IronXL.Excel/</a>
## Como ler um documento do Excel
Com o IronXL, extrair dados de um arquivo Excel pode ser feito em apenas algumas linhas de código.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-1.cs
```
## Criando novos documentos do Excel
IronXL oferece uma interface rápida e fácil para gerar documentos Excel usando C# ou VB.NET.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-2.cs
```
## Exportação em CSV, XLS, XLSX, JSON ou XML
IronXL também permite que você salve ou exporte dados para uma variedade de formatos de planilhas estruturados e populares.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-3.cs
```
## Estilizando células e intervalos
Você pode aplicar formatação a células e intervalos de Excel usando o objeto IronXL.Range.Style.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-4.cs
```
## Intervalos de classificação
Com o IronXL, você pode ordenar um intervalo de células Excel facilmente utilizando o objeto Range.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-5.cs
```
## Editando fórmulas
Modificar uma fórmula Excel é tão simples quanto atribuir um valor que começa com um sinal de "=". A fórmula será calculada instantaneamente.
```csharp
:path=/static-assets/excel/content-code-examples/get-started/get-started-6.cs
```
## Por que Escolher o IronXL?
IronXL oferece uma API amigável para desenvolvedores para ler e escrever documentos Excel em .NET.
Funciona sem requerer que o Microsoft Excel ou Excel Interop estejam instalados no servidor, tornando o manuseio de arquivos Excel rápido, leve e sem complicações.
## Seguindo em frente
Para explorar mais recursos e capacidades, recomendamos revisar a [Referência de API .NET](/csharp/excel/object-reference/) formatada de forma semelhante à documentação MSDN.
Ler e criar arquivos Excel (XLS, XLSX e CSV) em C# e outras linguagens .NET é fácil utilizando a biblioteca de software IronXL da Iron Software.
IronXL não requer que o Excel Interop esteja instalado no seu servidor. IronXL fornece uma API mais rápida e intuitiva do que Microsoft.Office.Interop.Excel.
IronXL funciona nas seguintes plataformas:
.NET Framework 4.6.2 e superior para Windows e Azure
.NET Core 2 e superior para Windows, Linux, MacOS e Azure
Com o IronXL, extrair dados de um arquivo Excel pode ser feito em apenas algumas linhas de código.
using IronXL;// Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSVWorkBook workBook = WorkBook.Load("data.xlsx");WorkSheet workSheet = workBook.WorkSheets.First();// Select cells easily in Excel notation and return the calculated value, date, text or formulaint cellValue = workSheet["A2"].IntValue;// Read from Ranges of cells elegantly.foreach (var cell in workSheet["A2:B10"]){Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);}
using IronXL;
// Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workBook = WorkBook.Load("data.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
// Select cells easily in Excel notation and return the calculated value, date, text or formula
int cellValue = workSheet["A2"].IntValue;
// Read from Ranges of cells elegantly.
foreach (var cell in workSheet["A2:B10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
ImportsIronXL' Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSVPrivate workBook AsWorkBook = WorkBook.Load("data.xlsx")Private workSheet AsWorkSheet = workBook.WorkSheets.First()' Select cells easily in Excel notation and return the calculated value, date, text or formulaPrivate cellValue AsInteger = workSheet("A2").IntValue' Read from Ranges of cells elegantly.For Each cell In workSheet("A2:B10")Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)Next cell
Imports IronXL
' Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("data.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()
' Select cells easily in Excel notation and return the calculated value, date, text or formula
Private cellValue As Integer = workSheet("A2").IntValue
' Read from Ranges of cells elegantly.
For Each cell In workSheet("A2:B10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
Criando novos documentos do Excel
IronXL oferece uma interface rápida e fácil para gerar documentos Excel usando C# ou VB.NET.
using IronXL;// Create new Excel WorkBook document.WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);workBook.Metadata.Author = "IronXL";// Add a blank WorkSheetWorkSheet workSheet = workBook.CreateWorkSheet("main_sheet");// Add data and styles to the new worksheetworkSheet["A1"].Value = "Hello World";workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;// Save the excel fileworkBook.SaveAs("NewExcelFile.xlsx");
using IronXL;
// Create new Excel WorkBook document.
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
workBook.Metadata.Author = "IronXL";
// Add a blank WorkSheet
WorkSheet workSheet = workBook.CreateWorkSheet("main_sheet");
// Add data and styles to the new worksheet
workSheet["A1"].Value = "Hello World";
workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
// Save the excel file
workBook.SaveAs("NewExcelFile.xlsx");
ImportsIronXL' Create new Excel WorkBook document.Private workBook AsWorkBook = WorkBook.Create(ExcelFileFormat.XLSX)workBook.Metadata.Author = "IronXL"' Add a blank WorkSheetDim workSheet AsWorkSheet = workBook.CreateWorkSheet("main_sheet")' Add data and styles to the new worksheetworkSheet("A1").Value = "Hello World"workSheet("A2").Style.BottomBorder.SetColor("#ff6600")workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double' Save the excel fileworkBook.SaveAs("NewExcelFile.xlsx")
Imports IronXL
' Create new Excel WorkBook document.
Private workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
workBook.Metadata.Author = "IronXL"
' Add a blank WorkSheet
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("main_sheet")
' Add data and styles to the new worksheet
workSheet("A1").Value = "Hello World"
workSheet("A2").Style.BottomBorder.SetColor("#ff6600")
workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
' Save the excel file
workBook.SaveAs("NewExcelFile.xlsx")
Exportação em CSV, XLS, XLSX, JSON ou XML
IronXL também permite que você salve ou exporte dados para uma variedade de formatos de planilhas estruturados e populares.
// Export to many formats with fluent savingworkSheet.SaveAs("NewExcelFile.xls");workSheet.SaveAs("NewExcelFile.xlsx");workSheet.SaveAsCsv("NewExcelFile.csv");workSheet.SaveAsJson("NewExcelFile.json");workSheet.SaveAsXml("NewExcelFile.xml");
// Export to many formats with fluent saving
workSheet.SaveAs("NewExcelFile.xls");
workSheet.SaveAs("NewExcelFile.xlsx");
workSheet.SaveAsCsv("NewExcelFile.csv");
workSheet.SaveAsJson("NewExcelFile.json");
workSheet.SaveAsXml("NewExcelFile.xml");
' Export to many formats with fluent savingworkSheet.SaveAs("NewExcelFile.xls")workSheet.SaveAs("NewExcelFile.xlsx")workSheet.SaveAsCsv("NewExcelFile.csv")workSheet.SaveAsJson("NewExcelFile.json")workSheet.SaveAsXml("NewExcelFile.xml")
' Export to many formats with fluent saving
workSheet.SaveAs("NewExcelFile.xls")
workSheet.SaveAs("NewExcelFile.xlsx")
workSheet.SaveAsCsv("NewExcelFile.csv")
workSheet.SaveAsJson("NewExcelFile.json")
workSheet.SaveAsXml("NewExcelFile.xml")
Estilizando células e intervalos
Você pode aplicar formatação a células e intervalos de Excel usando o objeto IronXL.Range.Style.
// Set cell's value and stylesworkSheet["A1"].Value = "Hello World";workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
// Set cell's value and styles
workSheet["A1"].Value = "Hello World";
workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
' Set cell's value and stylesworkSheet("A1").Value = "Hello World"workSheet("A2").Style.BottomBorder.SetColor("#ff6600")workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
' Set cell's value and styles
workSheet("A1").Value = "Hello World"
workSheet("A2").Style.BottomBorder.SetColor("#ff6600")
workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
Intervalos de classificação
Com o IronXL, você pode ordenar um intervalo de células Excel facilmente utilizando o objeto Range.
using IronXL;using Range = IronXL.Range;WorkBook workBook = WorkBook.Load("test.xls");WorkSheet workSheet = workBook.WorkSheets.First();// This is how we get range from Excel worksheetRange range = workSheet["A2:A8"];// Sort the range in the sheetrange.SortAscending();workBook.Save();
using IronXL;
using Range = IronXL.Range;
WorkBook workBook = WorkBook.Load("test.xls");
WorkSheet workSheet = workBook.WorkSheets.First();
// This is how we get range from Excel worksheet
Range range = workSheet["A2:A8"];
// Sort the range in the sheet
range.SortAscending();
workBook.Save();
ImportsIronXLDim workBook AsWorkBook = WorkBook.Load("test.xls")Dim workSheet AsWorkSheet = workBook.WorkSheets.First()' This is how we get range from Excel worksheetDim range AsRange = workSheet("A2:A8")' Sort the range in the sheetrange.SortAscending()workBook.Save()
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("test.xls")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' This is how we get range from Excel worksheet
Dim range As Range = workSheet("A2:A8")
' Sort the range in the sheet
range.SortAscending()
workBook.Save()
Editando fórmulas
Modificar uma fórmula Excel é tão simples quanto atribuir um valor que começa com um sinal de "=". A fórmula será calculada instantaneamente.
// Set a formulaworkSheet["A1"].Value = "=SUM(A2:A10)";// Get the calculated valuedecimal sum = workSheet["A1"].DecimalValue;
// Set a formula
workSheet["A1"].Value = "=SUM(A2:A10)";
// Get the calculated value
decimal sum = workSheet["A1"].DecimalValue;
' Set a formulaworkSheet("A1").Value = "=SUM(A2:A10)"' Get the calculated valueDim sum AsDecimal = workSheet("A1").DecimalValue
' Set a formula
workSheet("A1").Value = "=SUM(A2:A10)"
' Get the calculated value
Dim sum As Decimal = workSheet("A1").DecimalValue
Por que Escolher o IronXL?
IronXL oferece uma API amigável para desenvolvedores para ler e escrever documentos Excel em .NET.
Funciona sem requerer que o Microsoft Excel ou Excel Interop estejam instalados no servidor, tornando o manuseio de arquivos Excel rápido, leve e sem complicações.
Seguindo em frente
Para explorar mais recursos e capacidades, recomendamos revisar a Referência de API .NET formatada de forma semelhante à documentação MSDN.
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.