Como abrir um arquivo do Excel e escrever dados em C#
Este artigo vai explorar a biblioteca IronXL para demonstrar como abrir um arquivo Microsoft Excel e escrever dados nele em uma Aplicação Console C#.
IronXL - Uma Biblioteca Excel
IronXL é uma Biblioteca Excel .NET que facilita a criação, leitura e edição de arquivos Excel em aplicações C#. Ele oferece desempenho excepcional e saída precisa. A biblioteca suporta todos os formatos de arquivo de livro do Excel, incluindo XLS, XLSX, XLSM, CSV e TSV. Além disso, permite que os dados sejam salvos ou exportados em formatos como JSON, HTML, Binário, Byte Array, DataSet ou DataTable.
Com o IronXL, os desenvolvedores podem trabalhar com planilhas e intervalos de células de forma harmoniosa. Ele oferece a capacidade de editar fórmulas e recalculá-las facilmente dentro de uma planilha. Classificar dados com base em intervalo, coluna ou linha é direto. A biblioteca fornece recursos para modificar layouts, como congelamento de painéis, tamanho automático de linhas/colunas e adição/remoção de linhas/colunas.
O IronXL também permite a proteção de arquivos Excel com senhas de usuário e permissões para edição. Outro recurso notável é a capacidade de adicionar, remover e extrair imagens de planilhas Excel. A biblioteca oferece uma ampla gama de funções Excel, suportando vários formatos de dados de células. Esses recursos tornam o IronXL uma das APIs mais amigáveis para trabalhar com arquivos Excel.
Uma das vantagens significativas do IronXL é que ele não requer que o Microsoft Excel seja instalado na máquina, eliminando a necessidade de Office Interop ou quaisquer outras dependências. É compatível com múltiplas plataformas e suporta .NET 7, 6, e 5. Também é compatível com .NET Core 2 e 3, bem como com .NET Framework 4.5 e versões posteriores para trabalhar com planilhas Excel.
Criar um aplicativo de console
A versão mais recente do Visual Studio IDE é recomendada para criar a aplicação. O Visual Studio é o IDE oficial para desenvolvimento em C#, e supõe-se que você já o tenha instalado. Se você ainda não instalou o Visual Studio, pode baixá-lo do site oficial da Microsoft Visual Studio.
Siga estas etapas para criar um novo projeto chamado "DemoApp".
-
Abra o Visual Studio e clique em Criar um Novo Projeto
Novo Projeto -
Selecione Aplicação Console e Clique em Avançar
Novo Tipo de Projeto -
Insira o nome do Projeto
Nome do Novo Projeto -
Selecione a versão do .NET . Escolha a versão estável .NET 6.0.
Informações Adicionais do Novo Projeto
Instalar a Biblioteca IronXL
Uma vez que o projeto é criado, a biblioteca IronXL precisa ser instalada no projeto para usá-la. Siga estes passos para instalá-lo.
-
Abra Gerenciar Pacotes NuGet para Soluções, quer a partir do Solution Explorer ou Ferramentas.
Gerenciador de Pacotes NuGet -
Procure pela Biblioteca IronXL e selecione o projeto atual. Clique em instalar.
Pesquisar e instalar o pacote IronXL na interface do Gerenciador de Pacotes NuGet
Adicione o seguinte namespace no topo do arquivo Program.cs
using IronXL;
using IronXL;
Imports IronXL
Open an Existing Excel File in C
O IronXL oferece a facilidade de abrir um arquivo Excel existente ou você pode criar um novo arquivo Excel. Este exemplo vai abrir um arquivo existente usando C# IronXL.
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Agora, vamos selecionar sua primeira planilha. Você pode selecionar uma planilha pelo número do índice ou pelo nome. A propriedade DefaultWorkSheet pode ajudar a obter a primeira planilha.
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Select worksheet by name
WorkSheet ws = workBook.GetWorkSheet("Sheet1");
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Select worksheet by name
WorkSheet ws = workBook.GetWorkSheet("Sheet1");
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
' Select worksheet by name
Dim ws As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Get any existing worksheet
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
O código acima obtém a primeira planilha do livro de Excel. Para criar um novo arquivo Excel com dados, verifique esta página de exemplo de código.
Agora, vamos escrever dados no arquivo Excel usando a biblioteca de objetos IronXL.
Write Data to Excel File in C
Escrever dados em um arquivo Excel usando IronXL é muito fácil. Existem várias maneiras de fazer isso, mas o método mais simples é usar a referência da célula do Excel.
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"
Também é possível escrever dados para um intervalo de células. O código a seguir escreve dados da célula B1 até B5.
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"
Também podemos preencher o intervalo com um loop for, tornando-o dinâmico. O código é o seguinte:
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
' Specify range in which we want to write the values
For i As Integer = 1 To 5
' Write the Dynamic value in column C
workSheet("C" & i).Value = "Value: " & i
' Write the Dynamic value in column D
workSheet("D" & i).Value = "Value: " & i
Next i
Outra maneira de escrever dados em um arquivo Excel é usando o método Replace.
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")
Save an Excel File in C
Esta seção explica como salvar o arquivo Excel com o conteúdo recém-escrito.
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")
O código completo é o seguinte:
using System;
using IronXL;
class Program
{
static void Main(string[] args)
{
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
Console.WriteLine("Successfully written to Excel File");
}
}
using System;
using IronXL;
class Program
{
static void Main(string[] args)
{
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
// Write the Dynamic value in column C
workSheet["C" + i].Value = "Value: " + i;
// Write the Dynamic value in column D
workSheet["D" + i].Value = "Value: " + i;
}
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
Console.WriteLine("Successfully written to Excel File");
}
}
Imports System
Imports IronXL
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"
' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"
' Specify range in which we want to write the values
For i As Integer = 1 To 5
' Write the Dynamic value in column C
workSheet("C" & i).Value = "Value: " & i
' Write the Dynamic value in column D
workSheet("D" & i).Value = "Value: " & i
Next i
' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")
' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")
Console.WriteLine("Successfully written to Excel File")
End Sub
End Class
Para informações mais detalhadas sobre como ler dados de arquivos Excel em C#, dê uma olhada neste exemplo.
Saída
A saída do arquivo é:

O arquivo Excel de saída
Resumo
Este artigo demonstrou como escrever dados em arquivos Excel em C# usando IronXL. O IronXL proporciona facilidade para trabalhar com arquivos Excel existentes sem qualquer complicação. Também permite criar novos arquivos Excel e escrever dados nele com uma sintaxe fácil. IronXL também pode ser usado para ler arquivos Excel sem a aplicação Microsoft Excel instalada. Para ler dados de arquivos Excel você pode ver esta página de exemplo de código.
O IronXL é gratuito para desenvolvimento e pode ser licenciado para uso comercial. Você também pode experimentar a versão de teste gratuita do IronXL para uso comercial.
Perguntas frequentes
Como posso abrir um arquivo do Excel em C# sem usar Interop?
É possível abrir um arquivo Excel em C# sem usar o Interop, utilizando a biblioteca IronXL. O IronXL permite manipular arquivos Excel de forma eficiente sem a necessidade de instalar o Microsoft Excel, melhorando o desempenho e a compatibilidade.
Como faço para escrever dados em uma célula específica de um arquivo Excel usando C#?
Com o IronXL, você pode gravar dados em uma célula específica de um arquivo do Excel acessando a pasta de trabalho, selecionando a planilha e, em seguida, usando referências de células para atribuir valores às células desejadas.
Quais são as vantagens de usar o IronXL em vez do Office Interop para manipulação de arquivos do Excel?
O IronXL oferece diversas vantagens em relação ao Office Interop, incluindo a ausência de dependência da instalação do Microsoft Excel, desempenho aprimorado, compatibilidade entre plataformas e suporte para vários formatos de arquivo do Excel, como XLS, XLSX e CSV.
Posso editar fórmulas em arquivos do Excel usando esta biblioteca?
Sim, o IronXL permite editar fórmulas em arquivos do Excel. Você pode manipular fórmulas existentes ou inserir novas usando uma sintaxe simples, que a biblioteca processa de forma eficiente.
Como o IronXL suporta diferentes formatos de arquivo do Excel?
O IronXL suporta vários formatos de arquivo Excel, como XLS, XLSX, XLSM, CSV e TSV, permitindo que você crie, leia e edite esses arquivos perfeitamente em um aplicativo C#.
É possível proteger um arquivo do Excel usando o IronXL?
Sim, o IronXL oferece funcionalidades para proteger arquivos do Excel, permitindo definir senhas e permissões de usuário, garantindo a segurança dos dados e o acesso controlado.
Como posso integrar a biblioteca IronXL ao meu projeto C#?
Para integrar o IronXL ao seu projeto C#, você pode usar o Gerenciador de Pacotes NuGet no Visual Studio. Procure por IronXL e adicione-o ao seu projeto para começar a usar seus recursos.
Quais plataformas são suportadas pelo IronXL?
O IronXL oferece suporte a múltiplas plataformas, incluindo .NET 5, 6 e 7, bem como .NET Core e Framework, tornando-o uma opção versátil para diversos ambientes de desenvolvimento.
Posso usar o IronXL gratuitamente?
O IronXL é gratuito para fins de desenvolvimento. No entanto, para uso comercial, é necessária uma licença. Um período de avaliação gratuita está disponível para testar os recursos da biblioteca em um ambiente comercial.
Como posso exportar dados do Excel para JSON usando o IronXL?
O IronXL permite exportar dados do Excel para o formato JSON, convertendo a planilha ou intervalos de dados específicos em strings JSON, que podem então ser usadas em aplicativos que exigem dados JSON.



