Como usar a interoperabilidade do Excel em C# (alternativa)

C# Excel Interop Workaround

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

Muitos projetos usam Excel para se comunicar claramente, mas se você estiver usando Microsoft.Office.Interop.Excel, então provavelmente teve que lidar com muitas linhas de código complicadas. Neste tutorial, usaremos IronXL como uma solução alternativa para o C# Excel Interop, para que você não precise usar Interop para concluir seu projeto. Você pode usar dados de arquivo Excel, criar arquivos Excel, editar e manipular tudo usando programação em C#.

## C# Excel Sem Interop
  • Baixar Biblioteca Excel Sem Interop
  • Acessar arquivo Excel em C#
  • Criar um novo arquivo Excel e inserir dados programaticamente
  • Modificar arquivos existentes, atualizar e substituir valores das células, remover linhas e mais
How To Work related to C# Excel Interop Workaround

Como Usar Interop Excel Alternativamente

  1. Instale uma biblioteca Excel para processar arquivos Excel.
  2. Abra o Workbook e adicione o arquivo Excel atual.
  3. Defina a planilha padrão.
  4. Leia o valor do Workbook do Excel.
  5. Processe e mostre o valor.

Passo 1

1. Baixar Biblioteca IronXL

Baixe a Biblioteca IronXL ou instale com NuGet para acessar a biblioteca gratuita e depois siga passo a passo para trabalhar neste tutorial sobre como usar Excel sem Interop. Licenças disponíveis se você quiser publicar seu projeto.

Install-Package IronXl.Excel

Tutorial de Como Fazer

2. Acessar Dados de Arquivo Excel

Para desenvolver aplicativos de negócios, precisamos de acesso fácil e perfeito aos dados dos arquivos Excel e a capacidade de manipulá-los programaticamente conforme uma variedade de requisitos. Com o IronXL, use a função WorkBook.Load(), que concede acesso para ler um arquivo Excel específico.

Após acessar o WorkBook, você pode então escolher um WorkSheet específico usando a função WorkBook.GetWorkSheet(). Agora você tem todos os dados do arquivo Excel disponíveis. Veja o exemplo a seguir de como usamos essas funções para obter dados de arquivo Excel em um projeto C#.

// Import the IronXL library to access its functionality
using IronXL;

static void Main(string[] args)
{
    // Access Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    // Access WorkSheet of Excel file
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Get a specific cell value, convert it to a string, and print it
    string a = ws["A5"].Value.ToString();
    Console.WriteLine("Getting Single Value:\n\n   Value of Cell A5: {0}", a);

    Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
    // Get multiple cell values using range function and iterate through them
    foreach (var cell in ws["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }

    Console.ReadKey(); // Pause the console to view output
}
// Import the IronXL library to access its functionality
using IronXL;

static void Main(string[] args)
{
    // Access Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    // Access WorkSheet of Excel file
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Get a specific cell value, convert it to a string, and print it
    string a = ws["A5"].Value.ToString();
    Console.WriteLine("Getting Single Value:\n\n   Value of Cell A5: {0}", a);

    Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
    // Get multiple cell values using range function and iterate through them
    foreach (var cell in ws["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }

    Console.ReadKey(); // Pause the console to view output
}
$vbLabelText   $csharpLabel

Este código produzirá o seguinte resultado:

1output related to 2. Acessar Dados de Arquivo Excel

Com o arquivo Excel tendo esta aparência:

1excel related to 2. Acessar Dados de Arquivo Excel

Podemos ver que nosso arquivo Excel, sample.xlsx, tem small business na célula A5. Os outros valores de B2 a B10 são os mesmos e exibidos na saída.

DataSet e DataTables

Também podemos trabalhar com arquivos Excel como um conjunto de dados e datatables usando essas direções.

// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();

// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();

// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
$vbLabelText   $csharpLabel

Você pode ler mais sobre como trabalhar com DataSet e DataTables do Excel, que fornece mais exemplos de código e explicações sobre o processo.

Agora, veremos outro aspecto, que é sobre criar um novo arquivo Excel em nosso projeto C#.


3. Criar Novo Arquivo Excel

Podemos facilmente criar uma nova planilha Excel e inserir dados nela programaticamente em nosso projeto C#. Para realizar isso, o IronXL fornece a função WorkBook.Create(), que cria um novo arquivo Excel.

Podemos então criar quantos WorkSheets forem necessários usando a função WorkBook.CreateWorkSheet().

Depois disso, também podemos inserir dados, conforme mostrado no exemplo abaixo:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Create a new WorkBook
    WorkBook wb = WorkBook.Create();

    // Create a new WorkSheet in the workbook
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    // Insert data into cells
    ws["A1"].Value = "New Value A1";
    ws["B2"].Value = "New Value B2";

    // Save the newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Create a new WorkBook
    WorkBook wb = WorkBook.Create();

    // Create a new WorkSheet in the workbook
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    // Insert data into cells
    ws["A1"].Value = "New Value A1";
    ws["B2"].Value = "New Value B2";

    // Save the newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
$vbLabelText   $csharpLabel

O código acima criará um novo arquivo Excel com o nome NewExcelFile.xlsx, e inserirá novos dados nos endereços das células A1 e B2 com os valores New Value A1 e New Value B2, respectivamente. Com esta configuração, você pode inserir dados da mesma forma, tanto quanto precisar.

Nota: Se você estiver criando um novo arquivo Excel ou modificando um existente, não se esqueça de salvar o arquivo conforme mostrado no exemplo acima.

Aprofunde-se em como Criar novas Planilhas Excel usando C# e experimente o código em seu projeto.


4. Modificar Arquivo Excel Existente

Podemos modificar arquivos Excel existentes e inserir dados atualizados neles programaticamente. Nas modificações de arquivo Excel, veremos os seguintes aspectos:

  • Atualizar o valor da célula
  • Substituir valores antigos por novos
  • Remover linhas ou colunas

Vamos ver como implementar os tópicos acima em nosso projeto C#.

Atualizar Valor da Célula

É muito simples atualizar o valor da célula de uma planilha Excel existente. Basta acessar o arquivo Excel no projeto e especificar sua WorkSheet, e então atualizar seus dados conforme mostrado no exemplo abaixo:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Update A3 cell value
    ws["A3"].Value = "New Value of A3";

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Update A3 cell value
    ws["A3"].Value = "New Value of A3";

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
$vbLabelText   $csharpLabel

O código acima atualizará o valor da célula A3 com New Value of A3.

Também podemos atualizar múltiplas células com um valor estático, usando a função de intervalo:

ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
$vbLabelText   $csharpLabel

Isso atualizará o número da linha 3 das células A3 para C3 com o New Value no arquivo Excel.

Saiba mais sobre o uso da Função de Intervalo em C# com estes exemplos.

Substituir Valores da Célula

Uma das forças do IronXL é sua capacidade de substituir facilmente old values por new values em arquivos Excel existentes, cobrindo todos os seguintes aspectos:

  • Substituir valores de uma WorkSheet completa:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
$vbLabelText   $csharpLabel
  • Substituir valores de uma linha específica:
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
$vbLabelText   $csharpLabel
  • Substituir valores de uma coluna específica:
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
$vbLabelText   $csharpLabel
  • Substituir valores em um intervalo específico:
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
$vbLabelText   $csharpLabel

Vamos ver um exemplo para ver claramente como usar as funções acima em nosso Projeto C# para substituir os valores. Neste exemplo, usaremos a função de substituição para substituir um valor em um intervalo específico.

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Specify a range from B5 to G5 and replace "Normal" value with "Good"
    ws["B5:G5"].Replace("Normal", "Good");

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Specify a range from B5 to G5 and replace "Normal" value with "Good"
    ws["B5:G5"].Replace("Normal", "Good");

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
$vbLabelText   $csharpLabel

O código acima substituirá o valor Normal por Good de B5 a G5, e o resto do WorkSheet permanece o mesmo. Veja mais sobre como Editar Valores de Células do Excel em um Intervalo usando esta função do IronXL.

Remover Linhas do Arquivo Excel

No desenvolvimento de aplicativos, às vezes precisamos remover programaticamente linhas inteiras de arquivos Excel existentes. Para esta tarefa, usamos a função Remove() do IronXL. Eis um exemplo:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Remove the row number 2
    ws.Rows[2].Remove();

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Remove the row number 2
    ws.Rows[2].Remove();

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
$vbLabelText   $csharpLabel

O código acima removerá a linha número 2 de sample.xlsx.


Tutorial de Acesso Rápido

### Referência do IronXL

Leia a Referência da API para IronXL para saber mais sobre todas as funções, recursos, classes e namespaces.

Referência do IronXL
Documentation related to Tutorial de Acesso Rápido

Perguntas frequentes

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

Você pode usar o IronXL para ler arquivos Excel em C# sem precisar de Interop. Carregue o arquivo usando a função WorkBook.Load() e acesse a planilha com WorkBook.GetWorkSheet() .

Qual é o processo para criar um novo arquivo Excel programaticamente em C#?

Com o IronXL, você pode criar um novo arquivo Excel usando o método WorkBook.Create() e, em seguida, adicionar dados a ele usando WorkSheet.CreateWorkSheet() .

É possível modificar arquivos do Excel em C# sem usar Interop?

Sim, o IronXL oferece a capacidade de modificar arquivos do Excel sem Interop, atualizando valores de células, substituindo valores antigos e removendo linhas ou colunas diretamente.

Como faço para atualizar o valor de uma célula específica em uma planilha do Excel usando o IronXL?

Para atualizar o valor de uma célula, carregue sua planilha usando WorkBook.GetWorkSheet() , atribua um novo valor à célula e salve as alterações.

Posso substituir valores em um intervalo de células usando o IronXL?

O IronXL permite substituir valores em um intervalo usando a função Replace() em uma planilha ou em um objeto de intervalo específico.

Quais são as vantagens de usar o IronXL em vez do Microsoft.Office.Interop.Excel?

O IronXL simplifica a manipulação de arquivos Excel, fornecendo uma API fácil de usar, reduzindo a necessidade de código de interoperabilidade complexo e oferecendo melhor desempenho e confiabilidade.

Como posso remover uma linha de um arquivo Excel usando o IronXL?

Para remover uma linha no IronXL, use a função Remove() no objeto de linha especificado dentro da planilha.

O IronXL suporta a conversão de arquivos Excel em DataSets e DataTables?

Sim, o IronXL suporta a conversão de pastas de trabalho em DataSets e de planilhas em DataTables, permitindo uma manipulação de dados mais flexível.

Como faço para instalar o IronXL em um projeto C#?

Você pode instalar o IronXL em seu projeto C# baixando-o do site da Iron Software ou usando o gerenciador de pacotes NuGet com o comando: Install-Package IronXl.Excel .

O IronXL é adequado para arquivos Excel grandes?

O IronXL foi otimizado para lidar com arquivos Excel grandes de forma eficiente, oferecendo velocidades de processamento rápidas e uso mínimo de memória em comparação com os métodos de interoperabilidade tradicionais.

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

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Pronto para começar?
Nuget Downloads 1,890,100 | Versão: 2026.3 acaba de ser lançado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/get-started/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/get-started/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Getstarted.php
Line: 25
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

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.