IRONSOFTWAREHOME
UTILISATION D'IRONXL

Comment importer un fichier Excel dans un GridView en ASP.NET C#

Curtis Chau
Curtis Chau
Updated: 28 juin 2026

L'importation de données Excel dans un GridView en ASP.NET C# est simple avec IronXL . Vous chargez un classeur, convertissez une feuille de calcul en DataTable, et la liez à votre contrôle GridView - tout cela sans pilotes OLEDB ou chaînes de connexion complexes.

> Essayez-le vous-même : profitez d'un essai gratuit d' IronXL pour suivre les exemples de code ci-dessous.

Comment installer IronXL pour l'intégration Excel GridView ?

Avant d'écrire le moindre code, vous devez ajouter IronXL à votre projet ASP.NET . La méthode la plus rapide consiste à NuGet, soit via la console du gestionnaire de packages Visual Studio, soit via l'interface de ligne de commande .NET .

PM > Install-Package IronXL.Excel

Une fois installé, NuGet ajoute toutes les références nécessaires à votre projet. Aucun pilote externe à installer, aucun fournisseur OLEDB à enregistrer et aucune dépendance à Microsoft Office sur le serveur. La bibliothèque est distribuée sous forme d'un seul assemblage géré et fonctionne sous Windows, Linux, macOS et dans les environnements d'hébergement cloud, notamment Azure App Service.

Après l'installation, ajoutez les espaces de noms suivants à tout fichier code-behind qui lit ou écrit des données Excel :

using IronXL;
using System.Data;
using System.IO;

IronXL prend en charge les formats .xls (Excel 97-2003) et .xlsx (Excel 2007+), vous n'avez donc pas besoin de gestion distincte pour chaque type de fichier. Le même appel WorkBook.Load gère les deux formats en inspectant automatiquement la signature du fichier.

Pourquoi éviter OLEDB pour la liaison de données GridView ?

Les importations Excel traditionnelles basées sur OLEDB nécessitent le moteur de base de données Microsoft Access (ACE ou JET) , qui doit être installé sur le serveur dans la version appropriée (32 bits ou 64 bits). Le déploiement sur différents environnements serveur échoue souvent car le pilote est manquant ou incompatible, et Microsoft ne fournit plus par défaut le pilote ACE 64 bits avec Windows.

IronXL élimine complètement cette dépendance. Il lit directement le format Open XML ou BIFF brut dans le code managé. Vous bénéficiez d'un comportement prévisible en développement, en préproduction et en production, sans vous soucier des versions de pilotes.

Quelles sont les plateformes .NET ciblées par IronXL ?

IronXL cible .NET 10, .NET 8, .NET Standard 2.0 et .NET Framework 4.6.2+. Cette compatibilité signifie que vous pouvez utiliser la même bibliothèque, que votre application ASP.NET s'exécute sur Web Forms classique, ASP.NET MVC ou sur les pages Razor ASP.NET Core modernes, sans aucune modification de code au niveau de la couche de gestion Excel. Vous pouvez trouver le package IronXL sur NuGet pour consulter l'historique des versions et les notes de version avant l'installation.

Quelle est la méthode la plus rapide pour charger des données Excel dans un GridView ?

La méthode la plus rapide combine WorkBook.Load, sheet.ToDataTable, et GridView.DataBind en environ quatre lignes de code efficace. Dans les scénarios de base, aucune création manuelle de colonnes ni aucune itération de lignes ne sont nécessaires.

using IronXL;
using System.Data;

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

// true = treat first row as column headers
DataTable dataTable = sheet.ToDataTable(true);

GridView1.DataSource = dataTable;
GridView1.DataBind();

L'appel ToDataTable(true) indique à IronXL de promouvoir la première ligne de la feuille de calcul en noms de colonnes dans le DataTable résultant. Lorsque vous liez cette table à un GridView avec AutoGenerateColumns="true", ASP.NET crée automatiquement une colonne par en-tête Excel.

Comment la fonction ToDataTable gère-t-elle les types de données mixtes ?

Chaque valeur de cellule dans le DataTable est stockée en tant que string par défaut lorsque vous appelez ToDataTable. Si votre application nécessite des colonnes typées -- par exemple, decimal pour des données de prix ou DateTime pour des dates -- vous pouvez lire les valeurs de cellule individuellement via l'indexeur WorkSheet et les convertir au type .NET approprié avant de remplir un DataTable fortement typé.

Pour l'affichage simple dans un GridView, les colonnes de chaîne sont suffisantes car le tableau rend toutes les valeurs sous forme de texte de toute façon.

Comment créer une page Web Forms ASP.NET pour importer un fichier Excel ?

Une page d'importation minimale nécessite trois contrôles : une entrée de téléchargement de fichier, un bouton de soumission, et le GridView. Ajoutez le balisage ASPX suivant à l'intérieur de votre élément <form runat="server"> :

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload Excel File"
    OnClick="btnUpload_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"
    CssClass="table table-bordered" />

L'attribut CssClass connecte la grille à votre feuille de style Bootstrap si vous en utilisez une, vous offrant des lignes et des bordures stylisées sans configuration supplémentaire.

Dans le code-behind, gérez l'événement de clic sur le bouton. Le modèle ci-dessous enregistre le fichier téléchargé dans un chemin serveur temporaire, le charge avec IronXL, et lie le DataTable résultant à la grille :

using IronXL;
using System.Data;
using System.IO;

void btnUpload_Click(object sender, EventArgs e)
{
    if (!FileUpload1.HasFile) return;

    string uploadDir = Server.MapPath("~/Uploads/");
    Directory.CreateDirectory(uploadDir); // ensure directory exists

    string filePath = Path.Combine(uploadDir, Path.GetFileName(FileUpload1.FileName));
    FileUpload1.SaveAs(filePath);

    WorkBook workBook = WorkBook.Load(filePath);
    WorkSheet sheet = workBook.DefaultWorkSheet;
    DataTable dt = sheet.ToDataTable(true);

    GridView1.DataSource = dt;
    GridView1.DataBind();

    // Store for later export operations
    Session["CurrentData"] = dt;
}

Cette implémentation suit le style des instructions de niveau supérieur pour la logique à l'intérieur du gestionnaire d'événements tout en conservant la signature d'événement Web Forms requise. Nontez que Directory.CreateDirectory est appelé de manière défensive - si le dossier Uploads existe déjà, l'appel n'a aucun effet.

Importer Excel dans GridView en ASP.NET C# avec IronXL : Données de feuille de calcul téléchargée rendues dans un contrôle GridView

Après que l'utilisateur sélectionne un fichier .xlsx et clique sur le bouton de téléchargement, la grille se remplit avec le contenu de la feuille de calcul. Les noms des colonnes proviennent de la première ligne du fichier Excel, et toutes les lignes suivantes deviennent des lignes de données dans la grille.

Comment valider le fichier téléchargé ?

Pour une utilisation en production, vous devez vérifier l'extension du fichier et le type MIME avant de le traiter. IronXL générera une exception pour les formats de fichiers non pris en charge, mais il est préférable de rejeter les chargements incorrects au niveau du contrôleur avant de toucher au système de fichiers :

string ext = Path.GetExtension(FileUpload1.FileName).ToFaibleerInvariant();
string[] allowed = { ".xls", ".xlsx" };

if (!allowed.Contains(ext))
{
    lblError.Text = "Only .xls and .xlsx files are accepted.";
    return;
}

Vous devez également appliquer une taille de fichier maximale via les limites de requête IIS ou en vérifiant FileUpload1.FileBytes.Length contre un seuil avant d'appeler SaveAs.

Comment accéder à des feuilles de calcul et des plages de cellules spécifiques ?

Lorsque qu'un classeur Excel contient plusieurs feuilles, vous devez cibler une feuille spécifique par nom plutôt que de vous fier à DefaultWorkSheet. IronXL fournit une méthode GetWorkSheet qui accepte le nom d'onglet de la feuille sous forme de chaîne.

using IronXL;
using System.Data;

WorkBook workBook = WorkBook.Load("sales-report.xlsx");

// Access a named sheet
WorkSheet salesSheet = workBook.GetWorkSheet("Q4 Sales");

// Read a specific cell range
var topTen = salesSheet["A1:E11"];

// Convert the entire workbook to a DataSet (one DataTable per sheet)
DataSet allSheets = workBook.ToDataSet();

// Bind the first sheet's DataTable to the grid
GridView1.DataSource = allSheets.Tables[0];
GridView1.DataBind();

La méthode ToDataSet est utile lorsque votre application a besoin d'afficher des données de plusieurs feuilles ou de laisser l'utilisateur choisir quelle feuille afficher. Chaque DataTable dans le DataSet retourné correspond à une feuille de calcul Excel, et le nom de la table correspond au nom de l'onglet de feuille.

Importer Excel dans GridView en ASP.NET C# avec IronXL : Données de feuille nommée liées à un GridView

Comment filtrer les lignes avant de les lier à un GridView ?

Si vous ne voulez qu'un sous-ensemble de lignes Excel -- par exemple, les lignes où la colonne "Statut" égale "Actif" -- lisez le DataTable produit par ToDataTable, appliquez un filtre DataView, et liez la vue filtrée à la grille :

DataTable dt = sheet.ToDataTable(true);
DataView dv = new DataView(dt)
{
    RowFilter = "Status = 'Active'"
};

GridView1.DataSource = dv;
GridView1.DataBind();

DataView.RowFilter accepte la syntaxe standard de clause SQL WHERE -- le même langage d'expression documenté dans la propriété DataColumn.Expression sur Microsoft Learn -- vous offrant tri et filtrage sans charger de base de données.

Comment comparer les méthodes d'importation pour la liaison de données dans Excel GridView ?

Les différentes approches de liaison d'Excel à GridView présentent des compromis distincts. Le tableau ci-dessous récapitule les méthodes les plus courantes afin que vous puissiez choisir celle qui convient le mieux à votre situation.

Comparaison des méthodes d'importation Excel pour la liaison à GridView ASP.NET
MéthodeChauffeur requisPrise en charge XLSAssistance XLSXDépendance du serveurComplexité du code
IronXL (ToDataTable)NonneOuiOuiNonneFaible
OLEDB / JETMoteur ACE/JETOuiPartielPilote 32/64 bitsHaut
Open XML SDKNonneNonOuiNonneHaut
EPPlusNonneNonOuiAucune (licence commerciale requise pour la production)Moyen

IronXL prend en charge les formats XLS anciens et XLSX modernes, ne nécessite aucune installation de pilote côté serveur et offre la complexité de code la plus faible parmi les options listées. Pour les équipes qui utilisent déjà d'autres produits Iron Software tels IronPDF ou IronOCR , une seule licence Iron Software couvre la Suite complète.

Comment exporter les données de GridView vers Excel ?

Effectuer l'aller-retour (d'Excel vers une grille puis retour à Excel) est tout aussi concis avec IronXL. Ce modèle est utile pour les boutons " télécharger au format Excel " qui permettent aux utilisateurs d'exporter ce qui est actuellement affiché dans la grille.

void btnExport_Click(object sender, EventArgs e)
{
    DataTable dt = Session["CurrentData"] as DataTable;
    if (dt == null) return;

    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = workBook.CreateWorkSheet("Export");

    // Write header row
    for (int col = 0; col < dt.Columns.Count; col++)
        ws.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++)
            ws.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);

    string exportDir = Server.MapPath("~/Exports/");
    Directory.CreateDirectory(exportDir);
    string exportPath = Path.Combine(exportDir, "export.xlsx");
    workBook.SaveAs(exportPath);

    Response.Clear();
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("Content-Disposition", "attachment; filename=export.xlsx");
    Response.TransmitFile(exportPath);
    Response.End();
}

L'appel Response.TransmitFile diffuse le fichier enregistré au navigateur, ce qui déclenche une boîte de dialogue de téléchargement. L'en-tête Content-Disposition: attachment garantit que les navigateurs téléchargent plutôt que d'essayer d'afficher le fichier en ligne.

Importer Excel dans GridView en ASP.NET C# avec IronXL : DataTable exporté vers un fichier Excel

Quelles sont les options de formatage courantes IronXL pour les exportations ?

Au-delà des données brutes, IronXL vous permet d'appliquer une mise en forme aux cellules avant l'enregistrement. Vous pouvez définir des en-têtes en gras, la largeur des colonnes, le format des nombres et les couleurs d'arrière-plan :

// Bold the header row
ws["A1:Z1"].Style.Font.Bold = true;

// Apply a currency format to column C (index 2), rows 2 onward
ws[$"C2:C{dt.Rows.Count + 1}"].FormatString = IronXL.Styles.BuiltinFormats.Accounting2;

// Auto-fit column widths (IronXL approximates based on content length)
ws.AutoSizeColumn(0);
ws.AutoSizeColumn(1);

Ces appels de formatage utilisent l'API de style de cellule IronXL, qui imite le modèle objet du format de fichier Excel sans nécessiter d'Interop.

Quelles sont vos prochaines étapes ?

Vous disposez désormais d'un pipeline complet et sans pilote pour importer des fichiers Excel dans un GridView ASP.NET et exporter les données du GridView vers Excel à l'aide IronXL. Voici les pistes à explorer ensuite pour consolider ces bases :

  • Consultez la documentation IronXL pour obtenir la référence complète de l'API, y compris l'évaluation des formules, les opérations sur les plages de cellules et la création de graphiques.
  • Explorez la bibliothèque d'exemples de code IronXL pour trouver des extraits de code prêts à l'emploi couvrant l'importation de fichiers CSV, les classeurs protégés par mot de passe, la mise en forme conditionnelle et bien plus encore.
  • Essayez le Tutoriel Excel vers DataTable si vous souhaitez une couverture plus approfondie du mappage de colonnes typées et de la gestion des valeurs nulles.
  • Consultez la page des licences IronXL pour découvrir les options disponibles, des licences de développement à la redistribution OEM.
  • Passez en revue le guide de lecture Excel .NET de Iron Software pour comprendre la navigation dans les classeurs et les feuilles de calcul en détail.
  • Comparez IronXL avec des alternatives en utilisant le comparatif des bibliothèques Excel C# pour un résumé des fonctionnalités par fonctionnalité contre OLEDB, EPPlus, et le SDK Open XML.

Pour les applications .NET Core et ASP.NET Core , la même API IronXL fonctionne dans les Razor Pages et les contrôleurs MVC. Le guide ASP.NET Core de IronXL explique les différences dans la gestion des téléchargements de fichiers et les modèles d'injection de dépendances.

Commencez par l'essai gratuit d'IronXL pour tester toutes les fonctionnalités dans votre projet avant de l'acheter. Aucune carte de crédit n'est requise pour la licence d'essai.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise