Passer au contenu du pied de page
UTILISATION D'IRONXL

Exporter des données SQL vers Excel en C# avec IronXL

L'exportation de données de SQL Server vers Microsoft Excel est une tâche courante pour les développeurs .NET qui créent des systèmes de reporting, des outils d'analyse de données et des applications métier. Ce tutoriel vous montre comment exporter des données SQL vers Excel en utilisant C# avec IronXL , une bibliothèque Excel .NET qui gère 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

Comment installer IronXL pour l'exportation de données SQL ?

Avant d'écrire la moindre ligne de code, vous devez ajouter IronXL à votre projet. La méthode la plus rapide consiste à utiliser la console du gestionnaire de packages NuGet dans Visual Studio :

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

Vous pouvez également utiliser l'interface de ligne de commande .NET :

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

Une fois installé, ajoutez les espaces de noms requis en haut de votre fichier. Avec les instructions de niveau supérieur de .NET 10, votre configuration ressemble à ceci :

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

IronXL cible .NET Standard 2.0 et versions ultérieures, il fonctionne donc avec les projets .NET 10, .NET Framework, ASP.NET Core et Blazor sans aucune configuration supplémentaire. Vous pouvez trouver le package sur NuGet .

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 comprend 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 IronXL. Contrairement aux solutions d'interopérabilité Microsoft, IronXL fonctionne de manière indépendante et gère de grands ensembles de données sans les goulots d'étranglement des performances dus à la surcharge d'interopérabilité COM.

Le schéma de base est simple. SqlDataAdapter fait partie du framework d'accès aux données .NET de Microsoft et constitue la méthode standard pour remplir les objets DataTable à partir de bases de données relationnelles depuis .NET 1.0 :

  1. Ouvrez un compte SqlConnection avec votre chaîne de connexion
  2. Utilisez SqlDataAdapter pour remplir un DataTable ou DataSet
  3. Appelez les méthodes IronXL pour créer un classeur et remplir les cellules de la feuille de calcul.
  4. Enregistrez le classeur sous le nom .xlsx ou .xls

Cette approche est compatible avec SQL Server 2012 et versions ultérieures, ainsi qu'avec Azure SQL Database, Amazon RDS pour SQL Server et toute source de données compatible ADO.NET. Le même schéma s'applique, que vous utilisiez une application console ou un outil de reporting web.

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 un 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.

L'exemple suivant interroge la table Nonrthwind Customers et écrit chaque ligne dans une feuille de calcul Excel à l'aide de l'API d'écriture de cellules d'IronXL :

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

string connectionString = "Data Source=localhost;Initial Catalog=Nonrthwind;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=Nonrthwind;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

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 en utilisant des index de ligne et de colonne à base zéro. IronXL prend en charge les formats .xls et .xlsx pour une large compatibilité avec les applications Microsoft Office.

Si votre table SQL contient des colonnes DateTime ou numériques, convertissez les valeurs des cellules de manière appropriée avant d'appeler SetCellValue. Le passage direct des types numériques préserve les types de données Excel et permet le tri et les calculs de formules sur les colonnes exportées.

Comment utiliser LoadWorkSheetsFromDataSet pour exporter plusieurs tables ?

Lorsque votre rapport a besoin de données provenant de plusieurs tables SQL -- par exemple, Produits et Catégories -- vous pouvez les charger dans un DataSet et laisser IronXL créer automatiquement une feuille de calcul par table. Il s'agit de l'approche la plus concise pour exporter un DataSet ou un DataTable vers 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

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

LoadWorkSheetsFromDataSet lit la propriété TableName de chaque DataTable à l'intérieur de DataSet et crée un onglet de feuille de calcul correspondant. Les noms de colonnes de DataTable deviennent la ligne d'en-tête de chaque feuille. Cette méthode est particulièrement utile pour les procédures stockées qui renvoient plusieurs ensembles de résultats, car vous pouvez remplir le DataSet en utilisant plusieurs appels SqlDataAdapter puis exporter le tout en une seule étape.

Pour les applications qui doivent créer des fichiers Excel par programmation avec une mise en forme personnalisée, vous pouvez toujours accéder aux feuilles de calcul individuelles après avoir appelé LoadWorkSheetsFromDataSet et appliquer des styles, des largeurs de colonnes ou des formules avant d'enregistrer.

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

Pour les applications web, l'exportation est généralement déclenchée lorsqu'un utilisateur clique sur un bouton. L'exemple suivant de formulaires Web ASP.NET montre comment gérer l'événement de clic sur un bouton, créer le classeur Excel à partir d'une requête SQL et envoyer le fichier au navigateur en tant que téléchargement à l'aide de 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

Exemple de bouton d'exportation

Comment exporter des données SQL vers Excel en C# avec IronXL: Image 2 - Exemple d'interface utilisateur du bouton d'exportation

Sortie

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

La méthode ToByteArray() convertit l'intégralité du classeur en un tableau d'octets en mémoire, que vous écrivez ensuite directement dans le flux de réponse HTTP. Cela évite d'écrire un fichier temporaire sur le disque. Contrairement à Microsoft Interop, qui nécessite des espaces réservés object misValue et une licence Office installée sur le serveur, IronXL fonctionne entièrement en code managé sans aucune dépendance externe.

Pour les projets ASP.NET Core et Razor Pages, remplacez Response.BinaryWrite par return File(fileBytes, contentType, filename) dans votre action de contrôleur. Le modèle d'exportation ASP.NET Core vers Excel suit la même approche de conversion du classeur en tableau d'octets.

Comment ajouter une mise en forme et des en-têtes de colonnes aux fichiers Excel exportés ?

Les exportations SQL brutes nécessitent souvent des améliorations de présentation avant d'être partagées avec les utilisateurs finaux. IronXL vous permet de contrôler les styles de cellules, la largeur des colonnes et les formats numériques une fois les données écrites dans la feuille de calcul. L'exemple suivant montre comment mettre en gras la ligne d'en-tête et ajuster automatiquement la largeur des colonnes :

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

Mettre en forme la ligne d'en-tête avec du texte en gras et une police plus grande facilite la lecture des rapports exportés dans Excel. Pour les colonnes numériques telles que les totaux ou les dénombrements, le passage d'une valeur double plutôt qu'une chaîne de caractères permet aux fonctions natives de tri et d'agrégation d'Excel de fonctionner correctement sur les données exportées.

Vous pouvez explorer l'ensemble des options de mise en forme, y compris les bordures de cellules, les couleurs d'arrière-plan et les masques de format numérique, dans la documentation de mise en forme des cellules IronXL .

Comment gérer efficacement les grands ensembles de données SQL ?

Pour les tables comportant des dizaines de milliers de lignes, la gestion de la mémoire devient importante. Charger l'ensemble des résultats dans un DataTable avant d'écrire dans Excel fonctionne bien pour la plupart des rapports, mais pour les exportations très volumineuses, vous pouvez traiter les lignes par lots ou utiliser SqlDataReader directement.

Lorsqu'il s'agit de gérer des exportations en volume important, tenez compte des stratégies suivantes :

  • Pagination avec SQL OFFSET/FETCH : Divisez les exportations volumineuses en plusieurs feuilles de calcul, chacune contenant une page de résultats. Cela permet de gérer facilement la taille des feuilles individuelles dans Excel.
  • Flux vers disque : Appelez workBook.SaveAs(filePath) après chaque lot plutôt que de tout conserver en mémoire avec ToByteArray().
  • Limiter les colonnes sélectionnées : Utilisez des listes de colonnes explicites dans votre instruction SELECT plutôt que SELECT * pour réduire la quantité de données transférées depuis SQL Server.

Pour obtenir des conseils sur la manière la plus rapide d'exporter un DataTable vers Excel en C# , le blog IronXL propose un article de référence dédié comparant différentes approches et leurs profils de mémoire.

La méthode WorkBook.LoadWorkSheetsFromDataSet est particulièrement efficace pour les objets DataSet de taille moyenne car elle gère l'itération de ligne en interne. Dans le cas spécifique de l'exportation de DataTable vers Excel , cette méthode réduit le code répétitif et est optimisée pour les écritures en masse.

Comment importer des données d'Excel vers SQL Server ?

Le flux d'exportation ne représente que la moitié de l'histoire pour de nombreuses applications de reporting. Vous devrez peut-être également autoriser les utilisateurs à télécharger un modèle, à le remplir de données, puis à le recharger sur SQL Server. IronXL simplifie ce flux de travail bidirectionnel.

Pour importer des données Excel dans une base de données , chargez le fichier téléchargé avec WorkBook.Load(filePath), parcourez les lignes de la feuille de calcul et insérez chaque ligne à l'aide d'un SqlCommand paramétré :

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.ExecuteNonnQuery();
}
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.ExecuteNonnQuery();
}
$vbLabelText   $csharpLabel

Les requêtes paramétrées protègent contre les injections SQL lors de la lecture de données Excel fournies par l'utilisateur. La documentation SqlCommand sur Microsoft Learn couvre toutes les surcharges disponibles et les modèles de liaison de paramètres. Validez toujours les valeurs des cellules avant l'insertion : vérifiez la présence de chaînes vides, de nombres hors plage et de types de données inattendus susceptibles d'entraîner des violations de contraintes dans votre table SQL Server.

Dans le sens inverse, IronXL prend également en charge la lecture des fichiers CSV en C# pour les scénarios où votre source de données produit une sortie séparée par des virgules au lieu de fichiers .xlsx.

Comment comparez-vous IronXL aux autres approches d'exportation ?

Il existe plusieurs méthodes pour exporter des données SQL vers Excel en .NET. Le tableau ci-dessous résume les principaux compromis :

Méthodes d'exportation SQL vers Excel en .NET : comparaison des fonctionnalités
Approche Bureau requis Prise en charge des ensembles de données Mise en forme Serveur sécurisé
IronXL Non Oui (intégré) Styles complets, formules Oui
Microsoft Interop Oui Itération manuelle Intégralement via COM Nonn (serveur COM)
EPPlus Non Itération manuelle Extensif Oui
NPOI Non Itération manuelle Bien Oui
Sortie CSV Non Manuel Aucune Oui

Microsoft Interop nécessite l'installation d'Office sur le serveur et n'est pas pris en charge dans les applications Web côté serveur. IronXL, EPPlus et NPOI fonctionnent tous sans Office. L'avantage d'IronXL réside dans sa prise en charge optimale des fonctions DataSet et DataTable grâce à LoadWorkSheetsFromDataSet, ce qui réduit le code d'exportation à quelques lignes seulement, contrairement à l'itération manuelle des lignes dans d'autres bibliothèques.

Pour une comparaison détaillée, consultez l'article sur les alternatives à Microsoft Office Interop .

Quelles sont vos prochaines étapes ?

L'exportation de données SQL vers Excel à l'aide de C# devient simple avec IronXL. La bibliothèque élimine les dépendances d'interopérabilité complexes tout en fournissant un support solide pour DataTable, DataSet et l'intégration directe de bases de données. Qu'il s'agisse de créer des applications console ou des systèmes de reporting web avec fonctionnalités de téléchargement de fichiers, IronXL assure une génération fiable de fichiers Excel pour tous les types de projets .NET 10.

Pour continuer à développer ces bases, explorez ces ressources connexes :

Créer un fichier Excel en C# : tutoriel complet sur la création et la mise en forme de classeurs

Achetez une licence pour un déploiement en production, ou continuez à explorer grâce à un essai gratuit pour tester toutes les fonctionnalité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# ?

Avec IronXL, vous pouvez exporter des données SQL vers Excel en C#. Connectez-vous à SQL Server via SqlConnection et SqlDataAdapter, remplissez un DataTable, puis utilisez IronXL pour créer un classeur et y insérer les lignes de données. IronXL 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 exporter des données SQL, vous avez besoin d'un projet .NET (Framework, Core ou .NET 10+), d'un accès à une base de données SQL Server et du package NuGet IronXL installé via Install-Package IronXl.Excel.

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 avoir besoin de Microsoft Office installé sur votre système ou serveur.

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

Oui, IronXL gère efficacement les grands ensembles de données. Pour les exportations très volumineuses, utilisez la pagination avec SQL OFFSET/FETCH, la fonction SaveAs plutôt que ToByteArray pour l'écriture sur disque, et limitez la sélection des colonnes dans votre requête SQL.

Comment exporter plusieurs tables SQL vers des feuilles Excel distinctes ?

Utilisez WorkBook.LoadWorkSheetsFromDataSet avec un DataSet alimenté par plusieurs appels SqlDataAdapter. IronXL crée une feuille de calcul par DataTable, en nommant chaque onglet à partir de la propriété DataTable.TableName.

Comment déclencher le téléchargement d'un fichier Excel dans ASP.NET?

Appelez la méthode `workBook.ToByteArray()` pour obtenir le fichier sous forme d'octets, puis écrivez-le dans la réponse HTTP avec les en-têtes `Content-Type` et `Content-Disposition` appropriés. Dans ASP.NET Core, retournez `File(fileBytes, contentType, filename)` depuis votre contrôleur.

Est-il possible d'importer des données Excel dans SQL Server avec IronXL?

Oui. Chargez le fichier Excel avec WorkBook.Load, parcourez les lignes de la feuille de calcul à l'aide de l'indexeur d'IronXL et insérez chaque ligne à l'aide d'une commande SqlCommand paramétrée afin de vous protéger contre les injections SQL.

Comment IronXL se compare-t-il à Microsoft Interop pour l'exportation de données SQL ?

IronXL ne nécessite pas l'installation d'Office sur le serveur, s'exécute en code managé et prend en charge nativement l'exportation de jeux de données avec LoadWorkSheetsFromDataSet. Microsoft Interop requiert un serveur COM et ne peut pas fonctionner de manière fiable dans les environnements de serveurs web.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me