IRONSOFTWAREHOME
USANDO O IRONXL

Como importar arquivos do Excel para o SQL Server em C#

Curtis Chau
Curtis Chau
Updated: 28 de junho de 2026

Em muitos contextos de negócios diferentes, importar dados do Excel para o SQL Server é uma necessidade típica. Ler dados de um arquivo do Excel e inseri-los em um banco de dados SQL Server são as tarefas envolvidas nesta atividade. Embora o assistente de exportação seja frequentemente utilizado, o IronXL oferece uma abordagem mais programática e flexível para manipulação de dados. O IronXL é uma poderosa biblioteca C# que pode importar dados do Excel a partir de arquivos; portanto, é possível agilizar essa operação. Para esse fim, este post oferecerá um guia completo sobre como configurar, executar e aprimorar a importação do Excel para o SQL Server usando C#.

Como Importar Excel para SQL Server em C#: Figura 1 - IronXL: A Biblioteca Excel para C#

How to Import Excel to SQL Server in C#

  1. Configure Seu Ambiente de Desenvolvimento
  2. Prepare Seu Arquivo Excel
  3. Conecte-se ao Seu Banco de Dados SQL Server
  4. Leia Dados dos Arquivos Excel Usando IronXL
  5. Exporte Dados e Gere um Relatório PDF Usando IronPDF
  6. Revise o Relatório PDF

O que é IronXL?

O IronXL, às vezes referido como IronXL.Excel, é uma biblioteca C# rica em recursos feita para facilitar o trabalho com arquivos Excel em aplicativos .NET. Esta ferramenta robusta é ideal para aplicativos no lado do servidor, pois permite que os desenvolvedores leiam, criem e editem arquivos Excel sem precisar instalar o Microsoft Excel no computador. Os formatos Excel 2007 e posteriores (.xlsx) e Excel 97–2003 (.xls) são suportados pelo IronXL, proporcionando versatilidade no gerenciamento de várias versões de arquivos Excel. Permite uma significativa manipulação de dados, como a manipulação de planilhas, linhas e colunas, além da inserção, atualização e remoção de dados.

O IronXL também suporta formatação de células e fórmulas do Excel, permitindo a geração programada de planilhas complexas e bem formatadas. Com sua otimização de desempenho e compatibilidade com múltiplas plataformas .NET, incluindo. NET Framework, .NET Core e .NET 5/6, o IronXL garante um manuseio eficaz de grandes conjuntos de dados. É uma opção flexível para desenvolvedores que desejam integrar operações de arquivos Excel em seus aplicativos, seja para atividades simples de importação/exportação de dados ou sistemas de relatórios complexos, graças à sua interface suave com outras estruturas .NET.

Principais características

Leitura e Escrita de Arquivos Excel

Os desenvolvedores podem ler e escrever dados de e para arquivos Excel usando IronXL. É simples criar novos arquivos Excel e editar os que já existem.

Não é Necessária Instalação do Microsoft Excel

O IronXL não requer a instalação do Microsoft Excel no computador que hospeda o aplicativo, ao contrário de algumas outras bibliotecas. Isso o torna perfeito para aplicações no lado do servidor.

Suporte para Vários Formatos Excel

A biblioteca oferece versatilidade no gerenciamento de vários tipos de arquivos Excel, suportando os formatos .xls (Excel 97-2003) e .xlsx (Excel 2007 e posteriores).

Criar um novo projeto do Visual Studio

É simples criar um projeto de console no Visual Studio. No Visual Studio, siga as seguintes ações para criar uma Aplicação Console:

  1. Abra o Visual Studio: Certifique-se de ter o Visual Studio instalado em seu computador antes de abri-lo.
  2. Inicie um Novo Projeto: Escolha File -> New -> Project.

Como Importar Excel para SQL Server em C#: Figura 2 - Clique em Novo

  1. No painel esquerdo da caixa Create a new project, escolha seu idioma de programação preferido—por exemplo, C#.
  2. Selecione o modelo Console App ou Console App (.NET Core) da lista de templates de projeto disponíveis.
  3. No campo Nome, dê um nome ao seu projeto.

Como Importar Excel para SQL Server em C#: Figura 3 - Forneça um nome e um local para salvar

  1. Decida um local para salvar o projeto.
  2. Clique em Criar para iniciar um projeto de aplicação para um Console.

Como Importar Excel para SQL Server em C#: Figura 4 - Finalmente, clique em criar para lançar uma aplicação

Instalando a Biblioteca IronXL

Instalar a biblioteca IronXL é necessário por causa da próxima atualização. Finalmente, para finalizar o procedimento, abra o Console do Gerenciador de Pacotes NuGet e digite o seguinte comando:

PM > Install-Package IronXL.Excel

Como Importar Excel para SQL Server em C#: Figura 5 - Insira o comando acima no Console do Gerenciador de Pacotes NuGet para instalar o IronXL

Usar o Gerenciador de Pacotes NuGet para procurar o pacote IronXL é outro método. Isso nos permite selecionar qual dos pacotes NuGet vinculados ao IronXL baixar.

Como Importar Excel para SQL Server em C#: Figura 6 - Alternativamente, procure por IronXL usando o Gerenciador de Pacotes NuGet e instale-o

Importar Excel para SQL com IronXL

Lendo Dados de Excel Usando IronXL

O processo de leitura de dados de arquivos Excel é facilitado com o IronXL. O exemplo a seguir mostra como usar o IronXL para ler dados de um arquivo Excel. Com essa abordagem, os dados são lidos e salvos em uma lista de dicionários, cada um correspondendo a uma linha na planilha Excel.

using IronXL;
using System;
using System.Collections.Generic;

public class ExcelReader
{
    public static List<Dictionary<string, object>> ReadExcelFile(string filePath)
    {
        // Initialize a list to store data from Excel
        var data = new List<Dictionary<string, object>>();

        // Load the workbook from the file path provided
        WorkBook workbook = WorkBook.Load(filePath);

        // Access the first worksheet in the workbook
        WorkSheet sheet = workbook.WorkSheets[0];

        // Retrieve column headers from the first row
        var headers = new List<string>();
        foreach (var header in sheet.Rows[0].Columns)
        {
            headers.Add(header.ToString());
        }

        // Loop through each row starting from the second row
        for (int i = 1; i < sheet.Rows.Count; i++)
        {
            // Create a dictionary to store the row data associated with column headers
            var rowData = new Dictionary<string, object>();
            for (int j = 0; j < headers.Count; j++)
            {
                rowData[headers[j]] = sheet.Rows[i][j].Value;
            }
            data.Add(rowData);
        }

        return data;
    }
}

Conectando-se ao SQL Server

Use a classe SqlConnection do namespace System.Data.SqlClient para estabelecer uma conexão com o SQL Server. Certifique-se de ter a string de conexão correta, que normalmente consiste no nome do banco de dados, nome do servidor e informações de autenticação. Como conectar-se a um banco de dados SQL Server e adicionar dados é abordado no exemplo a seguir.

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;

public class SqlServerConnector
{
    private string connectionString;

    // Constructor accepts a connection string
    public SqlServerConnector(string connectionString)
    {
        this.connectionString = connectionString;
    }

    // Inserts data into the specified table
    public void InsertData(Dictionary<string, object> data, string tableName)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            // Construct an SQL INSERT command with parameterized values to prevent SQL injection
            var columns = string.Join(",", data.Keys);
            var parameters = string.Join(",", data.Keys.Select(key => "@" + key));
            string query = $"INSERT INTO {tableName} ({columns}) VALUES ({parameters})";

            using (SqlCommand command = new SqlCommand(query, connection))
            {
                // Add parameters to the command
                foreach (var kvp in data)
                {
                    command.Parameters.AddWithValue("@" + kvp.Key, kvp.Value ?? DBNull.Value);
                }

                // Execute the command
                command.ExecuteNonQuery();
            }
        }
    }
}

Combinando IronXL com SQL Server

Uma vez que a lógica para ler arquivos Excel e inserir dados em um banco de dados SQL foi estabelecida, integre essas funcionalidades para concluir o processo de importação. O aplicativo que segue recebe informações de um arquivo Excel e as adiciona a um banco de dados Microsoft SQL Server.

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        // Define the path to the Excel file, SQL connection string, and target table name
        string excelFilePath = "path_to_your_excel_file.xlsx";
        string connectionString = "your_sql_server_connection_string";
        string tableName = "your_table_name";

        // Read data from Excel
        List<Dictionary<string, object>> excelData = ExcelReader.ReadExcelFile(excelFilePath);

        // Create an instance of the SQL connector and insert data
        SqlServerConnector sqlConnector = new SqlServerConnector(connectionString);
        foreach (var row in excelData)
        {
            sqlConnector.InsertData(row, tableName);
        }

        Console.WriteLine("Data import completed successfully.");
    }
}

Esta classe é responsável por usar o IronXL para ler os dados do arquivo Excel fornecido. A função ReadExcelFile carrega a pasta de trabalho do Excel, abre a primeira planilha e coleta dados percorrendo as linhas da planilha de dados. Para facilitar o manuseio das tabelas, as informações são mantidas em uma lista de dicionários.

Como Importar Excel para SQL Server em C#: Figura 7 - Exemplo de arquivo Excel de Entrada

Os dados são inseridos na tabela designada do banco de dados por esta classe, que também gerencia a conexão com o banco de dados SQL Server. O método InsertData emprega consultas parametrizadas para prevenir injeção de SQL e constrói uma consulta SQL INSERT dinamicamente com base nas chaves do dicionário, que representam os nomes das colunas.

Usando a classe ExcelReader para ler os dados no tabela SQL a partir do arquivo Excel e a classe SqlServerConnector para inserir cada linha na tabela SQL Server, a função Main gerencia todo o processo.

Como Importar Excel para SQL Server em C#: Figura 8 - Saída mostrando consulta bem-sucedida no SQL Server

O tratamento de erros e a otimização são cruciais para garantir um processo de importação robusto e eficiente. A implementação de tratamento robusto de erros pode gerenciar problemas potenciais, como arquivos ausentes, formatos de dados inválidos e exceções SQL. Aqui está um exemplo de incorporação de tratamento de erros.

try
{
    // Insert the importing logic here
}
catch (Exception ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}

Conclusão

Finalmente, um método eficaz e confiável para gerenciar arquivos Excel em aplicativos .NET é importar dados do Excel para um banco de dados MS SQL usando C# e IronXL. O IronXL é compatível com múltiplos formatos Excel e possui capacidades robustas que facilitam a leitura e escrita de dados Excel sem a necessidade de instalar o Microsoft Excel. Por meio da integração de System.Data.SqlClient com IronXL, os desenvolvedores podem facilmente mover dados entre SQL Servers usando consultas parametrizadas para melhorar a segurança e prevenir injeção de SQL.

Finalmente, adicionar IronXL e Iron Software ao seu conjunto de ferramentas de desenvolvimento .NET permite que você manipule eficientemente Excel, crie PDFs, faça OCR e utilize códigos de barras. Combinando o conjunto flexível da Iron Software com a simplicidade de uso, interoperabilidade e desempenho do IronXL garante um desenvolvimento simplificado e capacidades aprimoradas de aplicativos. Com opções de licença claras que são personalizadas para os requisitos do projeto, os desenvolvedores podem selecionar o modelo correto com confiança. Ao utilizar esses benefícios, os desenvolvedores podem enfrentar efetivamente uma gama de desafios enquanto mantêm conformidade e transparência.

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

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.