Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment exporter des données SQL vers Excel en utilisant C# avec IronXL

L'exportation de données du serveur SQL vers Microsoft Excel est une exigence courante pour les développeurs .NET qui créent des systèmes de reporting, des outils d'analyse de données et des applications commerciales. Ce tutoriel montre comment exporter des données SQL vers Excel en utilisant C# avec IronXL, une puissante bibliothèque Excel qui simplifie l'ensemble du processus sans nécessiter l'installation de Microsoft Office.

Démarrez votre essai gratuit pour suivre les exemples de code ci-dessous.

Commencez avec IronXL maintenant.
green arrow pointer

Quelle est la meilleure façon d'exporter des données à partir d'une base de données SQL Server?

L'approche la plus efficace pour exporter des données de SQL Server vers un fichier Excel comporte trois étapes : établir une connexion à la base de données, récupérer les données dans un DataTable, et écrire les données dans une feuille de calcul Excel à l'aide d'IronXL. Contrairement aux solutions Microsoft Interop, IronXL fonctionne de manière indépendante et traite de grands ensembles de données avec d'excellentes performances.

Comment se connecter au serveur SQL et récupérer des données?

Avant de pouvoir exporter des données SQL, vous devez établir une connexion et exécuter une requête SQL pour remplir une DataTable. La chaîne de connexion contient les informations d'identification de la base de données SQL Server et les informations sur le serveur nécessaires pour accéder à vos données.

Vous devrez importer les espaces de noms suivants dans votre projet Visual Studio :

using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Use SqlDataAdapter to fill DataTable with query results
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // Create new workbook and worksheet
    WorkBook workBook = WorkBook.Create();
    WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
    // Export DataTable to Excel worksheet with column names
    int rowIndex = 1;
    // Write column headers from DataTable
    for (int j = 0; j < dt.Columns.Count; j++)
    {
        workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
    }
    // Fill worksheet with data values
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            string cellValue = dt.Rows[i][j].ToString();
            workSheet.SetCellValue(rowIndex, j, cellValue);
        }
        rowIndex++;
    }
    // Save Excel file in xlsx format
    workBook.SaveAs("CustomerExport.xlsx");
}
using IronXL;
using System.Data;
using System.Data.SqlClient;
// Define connection string for SQL Server
string connectionString = @"Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True";
// SQL query to retrieve data from SQL Server table
string sql = "SELECT * FROM Customers";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    // Use SqlDataAdapter to fill DataTable with query results
    SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    // Create new workbook and worksheet
    WorkBook workBook = WorkBook.Create();
    WorkSheet workSheet = workBook.CreateWorkSheet("CustomerData");
    // Export DataTable to Excel worksheet with column names
    int rowIndex = 1;
    // Write column headers from DataTable
    for (int j = 0; j < dt.Columns.Count; j++)
    {
        workSheet.SetCellValue(0, j, dt.Columns[j].ColumnName);
    }
    // Fill worksheet with data values
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            string cellValue = dt.Rows[i][j].ToString();
            workSheet.SetCellValue(rowIndex, j, cellValue);
        }
        rowIndex++;
    }
    // Save Excel file in xlsx format
    workBook.SaveAs("CustomerExport.xlsx");
}
$vbLabelText   $csharpLabel

Sortie

Comment exporter des données SQL vers Excel en utilisant C# avec IronXL : Image 1 - Fichier Excel généré

Ce code crée un fichier Excel avec des en-têtes de colonne correctement formatés, dérivés de la structure de votre table SQL Server. Le DataTable dt stocke les résultats de la requête, qui sont ensuite écrits systématiquement dans chaque cellule de la feuille Excel. Le code suivant illustre le modèle de méthode add pour remplir les cellules d'une feuille de calcul. IronXL prend en charge les formats xls et xlsx pour une compatibilité maximale avec les applications Microsoft Office.

Comment exporter des données à l'aide d'un bouton d'exportation ASP.NET?

Pour les applications web, vous déclencherez généralement l'exportation lorsqu'un utilisateur cliquera sur un bouton d'exportation. Le code suivant montre comment gérer l'événement de clic sur le bouton et lancer le téléchargement d'un fichier en utilisant Response.AddHeader pour la disposition du contenu.

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";
        try
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // Execute SQL query to get data from SQL server
                SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                // Create Excel workbook from DataSet - each table becomes a sheet
                WorkBook workBook = WorkBook.Create();
                WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
                // Convert to byte array for download
                byte[] fileBytes = workBook.ToByteArray();
                string filename = "OrdersExport.xlsx";
                // Set response headers for file download
                Response.Clear();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                Response.BinaryWrite(fileBytes);
                Response.End();
            }
        }
        catch (Exception ex)
        {
            // Handle any errors during export
            Response.Write("Export error: " + ex.Message);
        }
    }
}
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";
        try
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // Execute SQL query to get data from SQL server
                SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Orders", connection);
                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet);
                // Create Excel workbook from DataSet - each table becomes a sheet
                WorkBook workBook = WorkBook.Create();
                WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
                // Convert to byte array for download
                byte[] fileBytes = workBook.ToByteArray();
                string filename = "OrdersExport.xlsx";
                // Set response headers for file download
                Response.Clear();
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename=" + filename);
                Response.BinaryWrite(fileBytes);
                Response.End();
            }
        }
        catch (Exception ex)
        {
            // Handle any errors during export
            Response.Write("Export error: " + ex.Message);
        }
    }
}
$vbLabelText   $csharpLabel

Exemple de bouton d'exportation

Comment exporter des données SQL vers Excel en utilisant C# avec IronXL : Image 2 - Exemple de bouton d'exportation ui

Sortie

Comment exporter des données SQL vers Excel en utilisant C# avec IronXL : Image 3 - Fichier généré

Les paramètres objet sender et EventArgs e sont standard pour les gestionnaires d'événements ASP.NET. Contrairement à Microsoft Interop qui nécessite objet misValue pour les paramètres manquants, IronXL utilise une API plus propre. Lorsque l'utilisateur clique sur le bouton d'exportation, cette méthode void privée exécute la requête de base de données, crée le document Excel et déclenche le téléchargement du fichier via le navigateur.

Comment importer des données et créer des fichiers Excel avec des en-têtes de colonnes ? IronXL fournit de multiples méthodes pour [créer des fichiers Excel](/csharp/excel/tutorials/create-excel-file-net/) et [importer des données](/csharp/excel/how-to/csharp-import-excel/) de manière efficace. La méthode `LoadWorkSheetsFromDataSet` accepte les collections `DataTable` et préserve automatiquement les noms des colonnes en tant qu'en-têtes dans votre feuille de calcul Excel. Cette approche fonctionne parfaitement avec les objets `System.Data` et Microsoft SQL Server. ```cs using IronXL; using System.Data; using System.Data.SqlClient; // Connection to SQL database string connectionString = @"Data Source=.;Initial Catalog=Inventory;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Query multiple tables from database 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"); // Create new workbook and load all tables WorkBook workBook = WorkBook.Create(); WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook); // Save as xlsx file workBook.SaveAs("InventoryReport.xlsx"); } ``` ### Sortie [Comment exporter des données SQL vers Excel en utilisant C# avec IronXL : Image 4 - Fichier généré avec en-têtes de colonnes](/static-assets/excel/blog/export-sql-data/export-sql-data-4.webp) Cette approche permet de gérer efficacement plusieurs tables SQL Server, en créant des onglets de feuilles de calcul distincts au sein d'un même classeur. Pour les applications utilisant des procédures stockées, il suffit de remplacer la requête SQL en ligne par votre appel de procédure en utilisant `CommandType.StoredProcedure`.

Qu'en est-il des applications Web avec balisage HTML ? Dans les applications ASP.NET où le balisage HTML se compose de boutons et de grilles de données, IronXL s'intègre de manière transparente. Le balisage HTML de votre page se compose de contrôles web standard qui déclenchent des opérations d'exportation côté serveur, tandis qu'IronXL gère toute la génération d'Excel sans dépendre de Microsoft Office. Pour des conseils détaillés sur [l'exportation d'objets DataSet et DataTable](/csharp/excel/how-to/export-dataset-datable/), consultez la documentation IronXL. ## Conclusion L'exportation de données SQL vers Excel à l'aide de C# devient simple avec IronXL. La bibliothèque élimine les dépendances Interop complexes tout en fournissant un support robuste pour `DataTable`, `DataSet`, et l'intégration directe des bases de données. Qu'il s'agisse de créer des applications de console ou des systèmes de reporting basés sur le web avec des capacités de téléchargement de fichiers, IronXL offre une génération de fichiers Excel fiable. [Achetez une licence](/csharp/excel/licensing/) pour un déploiement en production, ou continuez à explorer avec un [essai gratuit](trial-license) pour tester toutes les capacités de cette bibliothèque Excel dans vos projets .NET.

Questions Fréquemment Posées

Comment exporter des données SQL vers Excel à l'aide de C# ?

Vous pouvez exporter des données SQL vers Excel à l'aide de C# en tirant parti d'IronXL.Excel, une puissante bibliothèque Excel. Elle simplifie le processus et ne nécessite pas l'installation de Microsoft Office.

Quelles sont les conditions préalables à l'utilisation d'IronXL pour exporter des données SQL ?

Pour utiliser IronXL pour l'exportation de données SQL, vous devez avoir une compréhension de base du langage C#, un accès à un serveur SQL et la bibliothèque IronXL installée dans votre environnement de développement.

Dois-je installer Microsoft Office pour exporter des données SQL vers Excel avec IronXL.Excel ?

Non, IronXL vous permet d'exporter des données SQL vers Excel sans que Microsoft Office soit installé sur votre système.

IronXL peut-il gérer de grands ensembles de données lors de l'exportation de données SQL vers Excel ?

Oui, IronXL est capable de traiter efficacement de grands ensembles de données, ce qui le rend adapté à l'exportation de données SQL étendues vers Excel.

IronXL est-il compatible avec toutes les versions de SQL Server ?

IronXL est conçu pour fonctionner avec diverses versions de SQL Server, ce qui garantit la compatibilité et la facilité d'utilisation dans différents environnements.

Quels sont les cas d'utilisation de l'exportation de données SQL vers Excel ?

L'exportation de données SQL vers Excel est utile pour créer des systèmes de reporting, des outils d'analyse de données et des applications commerciales où les données doivent être facilement accessibles et partageables dans un format largement utilisé.

IronXL prend-il en charge les options de formatage pour les fichiers Excel ?

Oui, IronXL offre une gamme d'options de formatage, vous permettant de personnaliser l'apparence et la structure de vos fichiers Excel exportés.

Comment IronXL simplifie-t-il le processus d'exportation de données SQL vers Excel ?

IronXL simplifie le processus d'exportation en fournissant des méthodes intuitives pour se connecter au serveur SQL, récupérer les enregistrements DataTable et générer des fichiers Excel sans nécessiter de configuration complexe ou de logiciel supplémentaire.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite