COMMENT FAIRE : Obtenir et afficher des données Excel à l'aide de ASP.NET, ADO.NET et Visual C# .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 306572 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F306572
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article pas à pas présente la procédure à suivre pour afficher des données d'une feuille de calcul Excel par l'intermédiaire d'une page ASP.NET (.aspx) à l'aide de Visual C# .NET.

Création d'un exemple de feuille de calcul Excel

  1. Démarrez Microsoft Excel, puis créez une feuille de calcul.
  2. Ajoutez les informations suivantes à la nouvelle feuille de calcul pour créer une base de données Excel simple :

    Réduire ce tableauAgrandir ce tableau
    A B
    1 Prénom Nom
    2 Scott Bishop
    3 Katie Jordan

    REMARQUE : Bien que dans cet exemple les données commencent à la cellule A1, vous pouvez ajouter ces données dans n'importe quelle plage de cellules adjacentes de la feuille de calcul.
  3. Sélectionnez les lignes et colonnes contenant les données.
  4. Dans le menu Insertion, pointez sur Nom, puis cliquez sur Définir.
  5. Dans la zone de texte Noms dans le classeur, tapez maPlage1, puis cliquez sur OK.
  6. Dans le menu Fichier, cliquez sur Enregistrer. Dans la liste Enregistrer dans, sélectionnez le dossier racine du serveur Web (généralement C:\InetPub\Wwwroot\). Dans la zone de texte Nom du fichier, tapez ExcelData.xls. Cliquez sur OK.
  7. Dans le menu Fichier, cliquez sur Quitter.

Création d'un exemple ASP.NET à l'aide de Visual C# .NET

Cet exemple de code illustre la recherche et l'affichage d'informations dans une feuille de calcul Excel. Le code ci-dessous utilise la feuille de calcul créée à la section précédente.
  1. Ouvrez Microsoft Visual Studio .NET. L'environnement de développement intégré (IDE) Visual Studio .NET s'affiche.
  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
  3. Dans la boîte de dialogue Nouveau projet, sous Types de projets, cliquez sur Projets Visual C#. Sous Modèles, cliquez sur Application Web ASP.NET.
  4. Dans la boîte de dialogue Nouveau projet, repérez les zones de texte Nom et Emplacement. Notez que la zone de texte Nom n'est pas disponible (elle est grisée ou estompée). La zone de texte Emplacement contient le texte suivant (ou un texte similaire) :
    http://hôte_local/WebApplication1
    Remplacez le texte situé dans la zone de texte Emplacement par http://hôte_local/ExcelCSTest, puis cliquez sur OK. Cette procédure crée un nouveau projet comprenant un formulaire Web nommé WebForm1.aspx.
  5. Dans l'IDE Visual Studio .NET, repérez la fenêtre de l'Explorateur de solutions. Si vous ne la trouvez pas, cliquez sur Explorateur de solutions dans le menu Affichage.
  6. Dans l'Explorateur de Solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Concepteur de vues pour afficher le concepteur chargé de la présentation de la page. Celui-ci vous permet d'ajouter des contrôles et de manipuler l'affichage de la page.
  7. Repérez la boîte à outils. Selon vos paramètres d'option pour l'IDE, la boîte à outils sera affichée comme une fenêtre ou comme un bouton (souvent sur la gauche de l'IDE). Si vous ne la trouvez pas, cliquez sur Boîte à outils dans le menu Affichage.

    Si la boîte à outils est affichée comme un bouton, placez votre pointeur sur le bouton de manière à afficher le contenu de la boîte.
  8. Lorsque le concepteur de vues d'un formulaire Web est actif, la boîte à outils est divisée en plusieurs sections, comprenant les Web Forms, les Composants, HTML, etc. Cliquez sur la section Web Forms.
  9. Dans la section Web Forms de la boîte à outils, cliquez sur DataGrid, puis faites glisser le contrôle sur le concepteur pour WebForm1.
  10. Cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher le code pour afficher la source de la page code-behind.
  11. Ajoutez les instructions suivantes en haut de la page code-behind, au-dessus de la section de l'espace de noms :
    using System.Data.OleDb;
    using System.Data;
  12. Sélectionnez le code suivant, cliquez avec le bouton droit sur le code, puis cliquez sur Copier. Dans WebForm1.aspx.cs, collez le code dans l'événement Page_Load :
    // Crée une variable de chaîne de connexion. Modifie le paramètre "Data Source"
    // de manière appropriée à votre environnement.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    	"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    	"Extended Properties=Excel 8.0;";
    
    // Crée un objet de connexion à l'aide de la chaîne de connexion précédente.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Ouvre une connexion avec la base de données.
    objConn.Open();
    
    // Le code suivant utilise une commande SQL SELECT pour afficher les données de la feuille de calcul.
    
    // Crée une nouvelle commande OleDbCommand pour renvoyer les données de la feuille de calcul.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM maPlage1", objConn);
    
    // Crée un nouvel adaptateur OleDbDataAdapter utilisé pour générer un DataSet
    // basé sur l'instruction SQL SELECT précédente.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Passe la commande Select à la carte.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Crée un nouveau DataSet pour contenir les informations de la feuille de calcul.
    DataSet objDataset1 = new DataSet();
    
    // Remplit le DataSet des informations de la feuille de calcul.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Lie les données au contrôle DataGrid.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Nettoie les objets.
    objConn.Close();
  13. Dans le menu Fichier, cliquez sur Enregistrer tout pour enregistrer les fichiers du projet.
  14. Dans le menu Générer, cliquez sur Générer pour construire le projet. Cette procédure prépare le code dans la page code-behind afin de pouvoir l'exécuter.
  15. Dans la fenêtre Explorateur de solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher dans le navigateur pour exécuter le code.

Explication supplémentaire du code

L'exemple de code présenté dans cet article utilise le Fournisseur Microsoft Jet OLE DB pour accéder à la feuille de calcul Excel. Ce code utilise la chaîne de connexion suivante pour se connecter à la feuille de calcul :
// Crée une variable de chaîne de connexion. Modifie le paramètre "Data Source"
// de manière appropriée à votre environnement.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
	"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
	"Extended Properties=Excel 8.0;";
Comme les commentaires l'indiquent, vous devez modifier le chemin afin qu'il pointe vers la feuille de calcul Excel souhaitée. En outre, vous devez définir la valeur du paramètre Extended Properties pour vous connecter correctement au fichier.

Notez que la chaîne de connexion utilise la fonction Server.MapPath. Celle-ci utilise un chemin relatif à Microsoft Internet Information Services (IIS) vers un fichier et renvoie un chemin de disque dur vers ce fichier. Par exemple, dans la section Création d'un exemple de feuille de calcul Excel, vous avez créé ExcelData.xls dans le dossier racine du site Web, généralement situé à C:\Inetpub\Wwwroot. Cette procédure crée également un sous-dossier nommé ExcelCSTest dans le répertoire Wwwroot et un fichier nommé WebForm1.aspx dans le dossier ExcelCSTest.

Dans cet exemple, le chemin du fichier sur le disque dur est le suivant :
     lecteur C
        - Inetpub
            - Wwwroot (qui contient ExcelData.xls)
                - ExcelCSTest (qui contient WebForm1.aspx)
Le chemin IIS des fichiers est le suivant :
     Dossier racine du site Web (qui contient ExcelData.xls)
        - ExcelCSTest (qui contient WebForm1.aspx)
Dans cet exemple, le chemin relatif de la page WebForm1.aspx vers le fichier ExcelData.xls est "../ExcelData.xls". Les caractères "../" indiquent à IIS de remonter d'un niveau de dossier. Par conséquent, le code
Server.MapPath("../ExcelData.xls")
renvoie la chaîne suivante :
C:\Inetpub\Wwwroot\ExcelData.xls
Il n'est pas nécessaire d'utiliser Server.MapPath. Vous pouvez également écrire ces informations de manière irréversible vers un chemin spécifique ou utiliser la méthode de votre choix pour préciser l'emplacement du fichier Excel sur le disque dur.

Références

Pour plus d?informations sur la procédure d'accès à des fichiers Excel avec ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
F307029 PROCÉDURE : Transférer des données XML vers Microsoft Excel 2002 à l'aide de Visual C# .NET
Pour plus d?informations sur l'utilisation de ADO.NET, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
306636 PROCÉDURE : Se connecter à une base de données et exécuter une commande à l'aide d'ADO.NET et de Visual C# .NET
314145 PROCÉDURE : Remplir un objet DataSet d'une base de données à l'aide de Visual C# .NET
307587 PROCÉDURE : Mettre à jour une base de données à partir d'un objet DataSet à l'aide de Visual C# .NET
REMARQUE : Les sociétés, organisations, produits, noms de domaine, adresses de courrier électronique, logos, personnes, lieux ou événements utilisés ici à titre d'exemples sont fictifs. Aucune référence à des sociétés, organisations, produits, noms de domaines, adresses de courrier électronique, logos, personnes, lieux ou événements réels ne saurait être déduite.

Propriétés

Numéro d'article: 306572 - Dernière mise à jour: lundi 30 juin 2003 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP .NET (inclus avec .NET Framework)
  • Microsoft ADO .NET (inclus dans .NET Framework)
  • Microsoft Visual C# .NET 2002 Initiation
  • Microsoft Excel 2002
  • Microsoft Excel 2000 Standard
Mots-clés : 
kbhowto kbhowtomaster kbwebforms kbdatabase kbgrpdsasp KB306572
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com