Bulk copy excel vers sql server

Description

Une question qu'on retrouve souvent sur le forum : Comment copier des données provenant d'un classeur excel vers SQL Server
Voici une méthode simple qui charge en bloc les données vers une table SQL Server

Source / Exemple :


using System;
using System.Data.OleDb;
using System.Data.SqlClient;

namespace BulkCopy
{
    class Program
    {
        static void Main(string[] args)
        {
            // La chaine de connexion au fichier excel (changer DataSource)
            string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Classeur1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
            // La chaine de connexion au sgbd
            string sqlConnectionString = "Data Source=localhost;Initial Catalog=TestDB;Integrated Security=True";

            // On crée la connexion au classeur excel
            using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
            {
                // Changer les champes et le nom de la feuilles en gardant [$]
                OleDbCommand command = new OleDbCommand("Select ID, Libelle FROM [Feuil1$]", connection);
                connection.Open();

                // On execute la commande
                using (OleDbDataReader reader = command.ExecuteReader())
                {
                    // Et on fait un bulk copy vers la table sql
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
                    {
                        bulkCopy.DestinationTableName = "TestTable";
                        bulkCopy.WriteToServer(reader);
                    }
                }
            }
        }
    }
}

Conclusion :


Prenons comme exemple un fichier excel avec 2 colonnes : ID et Libelle, il faut que la table de destination contienne elle aussi ces 2 colonnes.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.