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

Exporte dados SQL para o Excel em C# com o IronXL.

Exportar dados do SQL Server para Microsoft Excel é uma tarefa comum para desenvolvedores .NET que constroem sistemas de relatório, ferramentas de análise de dados e aplicativos empresariais. Este tutorial mostra como exportar dados SQL para Excel usando C# com IronXL, uma biblioteca Excel .NET que gerencia todo o processo sem exigir a instalação do Microsoft Office.

Comece seu teste gratuito para acompanhar os exemplos de código abaixo.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Como instalar IronXL para Exportação de Dados SQL?

Antes de escrever qualquer código, você precisa adicionar o IronXL ao seu projeto. A maneira mais rápida é via o Console do Gerenciador de Pacotes NuGet no Visual Studio:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

Alternativamente, use o .NET CLI:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

Uma vez instalado, adicione os namespaces necessários no topo de seu arquivo. Com declarações de nível superior do .NET 10, sua configuração ficará assim:

using IronXL;
using System.Data;
using System.Data.SqlClient;
using IronXL;
using System.Data;
using System.Data.SqlClient;
$vbLabelText   $csharpLabel

O IronXL tem como alvo o .NET Standard 2.0 e superior, portanto, funciona com projetos .NET 10, .NET Framework, ASP.NET Core e Blazor sem qualquer configuração adicional. Você pode encontrar o pacote no NuGet.

Qual é a melhor maneira de exportar dados de um banco de dados SQL Server?

A abordagem mais eficiente para exportar dados do SQL Server para um arquivo Excel envolve três etapas: estabelecer uma conexão de banco de dados, recuperar dados em um DataTable e escrever os dados em uma planilha do Excel usando IronXL. Ao contrário das soluções Interoperabilidade Microsoft, IronXL opera de forma independente e lida com grandes conjuntos de dados sem gargalos de desempenho causados pelo overhead do COM interop.

O padrão básico é direto. SqlDataAdapter faz parte do framework de acesso a dados ADO.NET da Microsoft e tem sido o meio padrão para preencher objetos DataTable a partir de bancos de dados relacionais desde o .NET 1.0:

  1. Abra um SqlConnection com sua string de conexão
  2. Use SqlDataAdapter para preencher um DataTable ou DataSet
  3. Chame métodos do IronXL para criar um livro de trabalho e preencher células da planilha
  4. Salve o livro como .xlsx ou .xls

Essa abordagem é compatível com SQL Server 2012 e posterior, bem como com o Azure SQL Database, Amazon RDS para SQL Server e qualquer fonte de dados compatível com ADO.NET. O mesmo padrão se aplica, quer você esteja trabalhando com um aplicativo de console ou uma ferramenta de relatórios baseada na web.

Como se conectar ao SQL Server e recuperar dados?

Antes de você poder exportar dados SQL, você precisa estabelecer uma conexão e executar uma consulta SQL para preencher um DataTable. A string de conexão contém as credenciais do banco de dados SQL Server e as informações do servidor necessárias para acessar seus dados.

O exemplo a seguir consulta a tabela Nãorthwind Customers e escreve cada linha em uma planilha Excel usando a API de escrita de células do IronXL:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Nãorthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString());
    }
}

workBook.SaveAs("CustomerExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Nãorthwind;Integrated Security=True";
string sql = "SELECT * FROM Customers";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Customers");

// Write column headers
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
}

// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(row + 1, col, dt.Rows[row][col].ToString());
    }
}

workBook.SaveAs("CustomerExport.xlsx");
$vbLabelText   $csharpLabel

Saída

Como Exportar Dados SQL para Excel Usando C# com IronXL: Imagem 1 - Arquivo Excel gerado

Este código cria um arquivo Excel com cabeçalhos de coluna formatados corretamente, derivados da estrutura da sua tabela SQL Server. O DataTable dt armazena os resultados da consulta, que são então escritos em cada célula sistematicamente usando índices de linha e coluna baseados em zero. O IronXL suporta formatos .xls e .xlsx para ampla compatibilidade com aplicativos do Microsoft Office.

Se sua tabela SQL contiver DateTime ou colunas numéricas, converta os valores das células adequadamente antes de chamar SetCellValue. Passar tipos numéricos diretamente preserva os tipos de dados do Excel e permite a ordenação e cálculos de fórmulas nas colunas exportadas.

Como usar LoadWorkSheetsFromDataSet para exportar múltiplas tabelas?

Quando seu relatório precisa de dados de várias tabelas SQL -- por exemplo, Produtos e Categorias -- você pode carregá-los em um DataSet e deixar o IronXL criar uma planilha por tabela automaticamente. Esta é a abordagem mais concisa para exportar um DataSet ou DataTable para Excel.

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);

DataSet dataSet = new DataSet();
productsAdapter.Fill(dataSet, "Products");
categoriesAdapter.Fill(dataSet, "Categories");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=.;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter productsAdapter = new SqlDataAdapter("SELECT * FROM Products", connection);
SqlDataAdapter categoriesAdapter = new SqlDataAdapter("SELECT * FROM Categories", connection);

DataSet dataSet = new DataSet();
productsAdapter.Fill(dataSet, "Products");
categoriesAdapter.Fill(dataSet, "Categories");

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

workBook.SaveAs("InventoryReport.xlsx");
$vbLabelText   $csharpLabel

Saída

Como Exportar Dados SQL para Excel Usando C# com IronXL: Imagem 4 - Arquivo gerado com cabeçalhos de coluna

LoadWorkSheetsFromDataSet lê a propriedade TableName de cada DataTable dentro do DataSet e cria uma aba de planilha correspondente. Nãomes de colunas do DataTable se tornam a linha de cabeçalho em cada folha. Este método é particularmente útil para procedimentos armazenados que retornam múltiplos conjuntos de resultados, porque você pode preencher o DataSet usando várias chamadas SqlDataAdapter e então exportar tudo em uma única etapa.

Para aplicativos que precisam criar arquivos Excel programaticamente com formatação personalizada, você ainda pode acessar planilhas individuais após chamar LoadWorkSheetsFromDataSet e aplicar estilos, larguras de coluna ou fórmulas antes de salvar.

Como exportar dados usando um botão de exportação ASP.NET?

Para aplicativos web, você normalmente aciona a exportação quando um usuário clica em um botão. O exemplo a seguir de ASP.NET Web Forms mostra como lidar com o evento de clique do botão, construir o livro do Excel a partir de uma consulta SQL e enviar o arquivo ao navegador como um download usando Response.AddHeader:

using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;

public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
using IronXL;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.UI;

public partial class ExportPage : Page
{
    private void ExportButton_Click(object sender, EventArgs e)
    {
        string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

        using SqlConnection connection = new SqlConnection(connectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
        DataSet dataSet = new DataSet();
        adapter.Fill(dataSet);

        WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);

        byte[] fileBytes = workBook.ToByteArray();
        string filename = "OrdersExport.xlsx";

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + filename);
        Response.BinaryWrite(fileBytes);
        Response.End();
    }
}
$vbLabelText   $csharpLabel

Exemplo de Botão de Exportação

Como Exportar Dados SQL para Excel Usando C# com IronXL: Imagem 2 - Exemplo de interface de botão de exportação

Saída

Como Exportar Dados SQL para Excel Usando C# com IronXL: Imagem 3 - Arquivo gerado

O método ToByteArray() converte todo o livro em um array de bytes na memória, que você escreve diretamente para o fluxo de resposta HTTP. Isso evita escrever um arquivo temporário no disco. Ao contrário do Interoperabilidade Microsoft, que requer placeholders object misValue e uma licença do Office instalada no servidor, o IronXL opera inteiramente em código gerenciado sem dependências externas.

Para projetos ASP.NET Core e Razor Pages, substitua Response.BinaryWrite por return File(fileBytes, contentType, filename) de sua ação de controlador. O padrão exportar para Excel no ASP.NET Core segue a mesma abordagem de workbook-para-array-de-bytes.

Como adicionar formatação e cabeçalhos de coluna aos arquivos Excel exportados?

Exportações de SQL bruto muitas vezes precisam de melhorias na apresentação antes de serem compartilhadas com usuários finais. IronXL oferece controle sobre os estilos de célula, larguras de coluna e formatos numéricos após os dados terem sido escritos na planilha. O exemplo a seguir demonstra como negritar a linha de cabeçalho e ajustar automaticamente as larguras das colunas:

using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
using IronXL;
using System.Data;
using System.Data.SqlClient;

string connectionString = "Data Source=localhost;Initial Catalog=Sales;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

SqlDataAdapter adapter = new SqlDataAdapter("SELECT OrderID, CustomerID, OrderDate, Total FROM Orders", connection);
DataTable dt = new DataTable();
adapter.Fill(dt);

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Orders");

// Write and style header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    workSheet[0, col].Style.Font.Bold = true;
    workSheet[0, col].Style.Font.Height = 12;
}

// Write data rows with type-aware value assignment
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        object value = dt.Rows[row][col];
        if (value is DateTime date)
            workSheet.SetCellValue(row + 1, col, date.ToString("yyyy-MM-dd"));
        else if (value is decimal || value is double || value is int)
            workSheet.SetCellValue(row + 1, col, Convert.ToDouble(value));
        else
            workSheet.SetCellValue(row + 1, col, value.ToString());
    }
}

workBook.SaveAs("FormattedOrdersExport.xlsx");
$vbLabelText   $csharpLabel

Estilizar a linha de cabeçalho com texto em negrito e uma fonte maior torna os relatórios exportados mais fáceis de ler no Excel. Para colunas numéricas como totais ou contagens, passar um valor double em vez de uma string permite que as funções nativas de ordenação e agregação do Excel funcionem corretamente nos dados exportados.

Você pode explorar toda a gama de opções de formatação -- incluindo bordas de células, cores de fundo e máscaras de formato numérico -- na documentação de formatação de célula do IronXL.

Como lidar de maneira eficiente com grandes conjuntos de dados SQL?

Para tabelas com dezenas de milhares de linhas, a gestão de memória torna-se importante. Carregar todo o conjunto de resultados em um DataTable antes de escrever para o Excel funciona bem para a maioria dos relatórios, mas para exportações muito grandes, você pode processar linhas em lotes ou usar SqlDataReader diretamente.

Ao trabalhar com exportações de alto volume, considere as seguintes estratégias:

  • Paginar com SQL OFFSET/FETCH: Divida grandes exportações em várias planilhas, cada uma contendo uma página de resultados. Isso mantém os tamanhos das planilhas individuais gerenciáveis no Excel.
  • Transmitir para disco: Chame workBook.SaveAs(filePath) após cada lote em vez de manter tudo na memória com ToByteArray().
  • Limitar colunas selecionadas: Use listas de colunas explícitas em sua declaração SELECT em vez de SELECT * para reduzir a quantidade de dados transferidos do SQL Server.

Para obter orientações sobre a maneira mais rápida de exportar uma DataTable para Excel em C#, o blog do IronXL tem um artigo de referência dedicado comparando diferentes abordagens e seus perfis de memória.

O método WorkBook.LoadWorkSheetsFromDataSet é particularmente eficiente para objetos DataSet de tamanho moderado, pois ele lida com a iteração de linhas internamente. Para o cenário específico de exportação de DataTable para Excel, este método reduz o código de template e é otimizado para gravações em massa.

Como importar dados do Excel de volta para o SQL Server?

O fluxo de exportação é apenas metade da história para muitas aplicações de relatórios. Você também pode precisar permitir que os usuários façam download de um modelo, preencham os dados e façam o upload novamente para o SQL Server. IronXL torna este fluxo de trabalho bidirecional direto.

Para importar dados do Excel para um banco de dados, carregue o arquivo enviado com WorkBook.Load(filePath), itere sobre as linhas da planilha e insira cada linha usando um SqlCommand parametrizado:

using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.ExecuteNãonQuery();
}
using IronXL;
using System.Data.SqlClient;

WorkBook workBook = WorkBook.Load("UploadedData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;

string connectionString = "Data Source=localhost;Initial Catalog=Inventory;Integrated Security=True";

using SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

// Skip header row, start at row index 1
for (int row = 1; row <= sheet.RowCount; row++)
{
    string productName = sheet[row, 0].StringValue;
    int quantity = (int)sheet[row, 1].DoubleValue;
    decimal price = (decimal)sheet[row, 2].DoubleValue;

    using SqlCommand cmd = new SqlCommand(
        "INSERT INTO Products (Name, Quantity, Price) VALUES (@name, @qty, @price)",
        connection);
    cmd.Parameters.AddWithValue("@name", productName);
    cmd.Parameters.AddWithValue("@qty", quantity);
    cmd.Parameters.AddWithValue("@price", price);
    cmd.ExecuteNãonQuery();
}
$vbLabelText   $csharpLabel

Consultas parametrizadas protegem contra injeção SQL ao ler dados do Excel fornecidos pelo usuário. A documentação SqlCommand no Microsoft Learn cobre todas as sobrecargas disponíveis e padrões de vinculação de parâmetros. Sempre valide os valores das células antes de inserir -- verifique por strings vazias, números fora do limite e tipos de dados inesperados que possam causar violações de restrição em sua tabela do SQL Server.

Para a direção reversa, o IronXL também suporta leituras de arquivos CSV em C# para cenários onde sua fonte de dados produz saída separada por vírgulas em vez de arquivos .xlsx.

Como você compara o IronXL com outras abordagens de exportação?

Existem várias abordagens para exportar dados SQL para Excel em .NET. A tabela abaixo resume as principais vantagens e desvantagens:

Abordagens de Exportação SQL-para-Excel em .NET -- Comparação de Recursos
Abordagem Escritório necessário Suporte a DataSet Formatação Seguro para Servidor
IronXL Não Sim (integrado) Estilos completos, fórmulas Sim
Interoperabilidade Microsoft Sim Iteração manual Completo via COM Não (servidor COM)
EPPlus Não Iteração manual Extenso Sim
NPOI Não Iteração manual Bom Sim
Saída CSV Não Manual Nenhum Sim

O Interop da Microsoft requer que o Office esteja instalado no servidor e não é suportado em aplicações web do lado do servidor. IronXL, EPPlus e NPOI funcionam sem Office. A vantagem do IronXL é seu suporte de primeira classe a DataSet e DataTable através do LoadWorkSheetsFromDataSet, o que reduz o código de exportação a algumas linhas em comparação com a iteração manual de linhas em outras bibliotecas.

Para uma comparação detalhada, veja o artigo sobre alternativas ao Microsoft Office Interop.

Quais são os seus próximos passos?

Exportar dados SQL para Excel usando C# torna-se direto com o IronXL. A biblioteca elimina as dependências complexas de Interop enquanto oferece forte suporte a DataTable, DataSet e integração direta com bancos de dados. Seja construindo aplicações de console ou sistemas de relatório baseados na web com capacidades de download de arquivos, o IronXL oferece geração confiável de arquivos Excel para todos os tipos de projeto .NET 10.

Para continuar construindo sobre esta base, explore estes recursos relacionados:

Compre uma licença para implementação em produção, ou continue explorando com uma versão de teste gratuita para testar todas as capacidades desta biblioteca Excel em seus projetos .NET.

Perguntas frequentes

Como posso exportar dados SQL para o Excel usando C#?

Você pode exportar dados SQL para o Excel usando C# com o IronXL. Conecte-se ao SQL Server usando SqlConnection e SqlDataAdapter, preencha um DataTable e, em seguida, use o IronXL para criar uma planilha e gravar as linhas de dados. O IronXL não requer a instalação do Microsoft Office.

Quais são os pré-requisitos para usar o IronXL para exportar dados SQL?

Para usar o IronXL para exportar dados SQL, você precisa de um projeto .NET (Framework, Core ou .NET 10+), acesso a um banco de dados SQL Server e o pacote NuGet IronXL instalado através do Install-Package IronXl.Excel.

Preciso ter o Microsoft Office instalado para exportar dados SQL para o Excel com o IronXL?

Não, o IronXL permite exportar dados SQL para o Excel sem a necessidade de ter o Microsoft Office instalado no seu sistema ou servidor.

O IronXL consegue lidar com grandes conjuntos de dados ao exportar dados SQL para o Excel?

Sim, o IronXL lida com grandes conjuntos de dados de forma eficiente. Para exportações muito grandes, use a paginação com OFFSET/FETCH em SQL, grave em disco usando SaveAs em vez de ToByteArray e limite as colunas selecionadas na sua consulta SQL.

Como faço para exportar várias tabelas SQL para planilhas separadas do Excel?

Use WorkBook.LoadWorkSheetsFromDataSet com um DataSet preenchido por múltiplas chamadas de SqlDataAdapter. O IronXL cria uma planilha por DataTable, nomeando cada guia a partir da propriedade DataTable.TableName.

Como faço para iniciar o download de um arquivo Excel em ASP.NET?

Chame `workBook.ToByteArray()` para obter o arquivo como bytes e, em seguida, escreva-o na resposta HTTP com os cabeçalhos `Content-Type` e `Content-Disposition` corretos. No ASP.NET Core, retorne `File(fileBytes, contentType, filename)` do seu controlador.

Posso importar dados do Excel de volta para o SQL Server com o IronXL?

Sim. Carregue o arquivo Excel com WorkBook.Load, itere sobre as linhas da planilha usando o indexador do IronXL e insira cada linha usando um SqlCommand parametrizado para proteger contra injeção de SQL.

Como o IronXL se compara ao Microsoft Interop para exportação de dados SQL?

O IronXL não requer a instalação do Office no servidor, é executado em código gerenciado e oferece suporte nativo à exportação de DataSet com LoadWorkSheetsFromDataSet. O Microsoft Interop requer um servidor COM e não funciona de forma confiável em ambientes de servidor 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