Interroger et afficher des données Excel à l’aide de ASP.NET, ADO.NET et Visual C# .NET

Cet article explique comment interroger et afficher des données à partir d’une feuille de calcul Excel via une page ASP.NET (.aspx) à l’aide de Visual C# .NET.

              Version d’origine du produit : ASP.NET
Numéro de la base de connaissances d’origine : 306572

Créer 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 :

    Numéro de ligne A B
    1 FirstName LastName
    2 Scott Bishop
    3 Katie Jordanie

    Remarque

    Bien que les données commencent par la cellule A1 dans cet exemple, vous pouvez ajouter ces données à toutes les cellules adjacentes dans la feuille de calcul.

  3. Mettez en surbrillance les lignes et les colonnes où se trouvent 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 myRange1, puis cliquez sur OK.

  6. Dans le menu Fichier, cliquez sur Enregistrer. Dans la liste Enregistrer dans , sélectionnez la racine du serveur web (qui est généralement C:\InetPub\Wwwroot\). Dans la zone de texte Nom de fichier, tapez ExcelData.xls. Cliquez sur OK.

  7. Dans le menu Fichier, cliquez sur Quitter.

Créer un exemple de ASP.NET à l’aide de Visual C# .NET

Cet exemple de code montre comment interroger et afficher des informations dans une feuille de calcul Excel. Le code suivant utilise la feuille de calcul que vous avez créée dans 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. On the File menu, point to New, and then click Project.

  3. Dans la boîte de dialogue Nouveau projet , sous Types de projets, cliquez sur Projets Visual C#. Sous Modèles, cliquez sur ASP.NET application web.

  4. Dans la boîte de dialogue Nouveau projet , recherchez les zones de texte Nom et Emplacement .

    Remarque

    • La zone de texte Nom n’est pas disponible (elle apparaît grisée ou grisée). La zone de texte Emplacement contient le texte (ou similaire). http://localhost/WebApplication1
    • Remplacez le texte dans la zone de texte Emplacement par http://localhost/ExcelCSTest, puis cliquez sur OK. Un projet est créé, qui inclut un formulaire web nommé WebForm1.aspx.
  5. Dans l’IDE Visual Studio .NET, recherchez la fenêtre Explorateur de solutions. Si vous ne le trouvez pas, cliquez sur Explorateur de solutions dans le menu Affichage.

  6. Dans Explorateur de solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher Designer pour afficher le concepteur pour l’apparence de la page. Le concepteur vous permet d’ajouter des contrôles et de manipuler l’apparence de la page.

  7. Recherchez la boîte à outils. Selon les paramètres de votre option IDE, la boîte à outils peut apparaître sous la forme d’une fenêtre ou d’un bouton (qui apparaît souvent sur le côté gauche de l’IDE). Si vous ne trouvez pas la boîte à outils, cliquez sur Boîte à outils dans le menu Affichage .

    Si la boîte à outils apparaît sous la forme d’un bouton, déplacez le pointeur sur le bouton afin que le contenu de la boîte à outils s’affiche.

  8. Lorsque l’affichage concepteur d’un formulaire Web est actif, la boîte à outils est divisée en sections, y compris les Web Forms, composants, HTML et autres sections. Cliquez sur la section Web Forms.

  9. Dans la section Web Forms de la boîte à outils, cliquez sur DataGrid, puis faites-la glisser 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 espace de noms :

    using System.Data.OleDb;
    using System.Data;
    
  12. Mettez en surbrillance 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 :

    // Create connection string variable. Modify the "Data Source"
    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    "Extended Properties=Excel 8.0;";
    
    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Open connection with the database.
    objConn.Open();
    
    // The code to follow uses a SQL SELECT command to display the data from the worksheet.
    // Create new OleDbCommand to return data from worksheet.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Create new OleDbDataAdapter that is used to build a DataSet
    // based on the preceding SQL SELECT statement.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pass the Select command to the adapter.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Create new DataSet to hold information from the worksheet.
    DataSet objDataset1 = new DataSet();
    
    // Fill the DataSet with the information from the worksheet.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Bind data to DataGrid control.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Clean up objects.
    objConn.Close();
    
  13. Dans le menu Fichier , cliquez sur Enregistrer tout pour enregistrer les fichiers projet.

  14. Dans le menu Générer , cliquez sur Générer pour générer le projet. Cette étape prépare le code dans la page code-behind afin qu’il puisse être exécuté.

  15. Dans Explorateur de solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher dans le navigateur pour exécuter le code.

Explication de code supplémentaire

L’exemple de code de cet article utilise le fournisseur OLE DB Microsoft Jet pour accéder à la feuille de calcul Excel. Ce code utilise les chaîne de connexion suivantes pour se connecter à la feuille de calcul :

// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";

Comme l’indiquent les commentaires, vous devez modifier les informations de chemin d’accès pour la feuille de calcul Excel spécifique. En outre, vous devez également définir la valeur du Extended Properties paramètre pour vous connecter correctement au fichier.

Remarque

Le chaîne de connexion utilise la Server.MapPath fonction . Cette fonction prend un chemin d’accès relatif à Microsoft Internet Information Services (IIS) à un fichier et retourne un chemin d’accès de disque dur à ce fichier. Par exemple, dans la section Créer un exemple de feuille de calcul Excel , vous créez ExcelData.xls dans le répertoire racine web, qui se trouve généralement à l’adresse C:\Inetpub\Wwwroot. Cela crée également un sous-dossier nommé ExcelCSTest dans le dossier Wwwroot et un fichier nommé WebForm1.aspx dans le _ExcelCSTest_folder.

Dans cet exemple, le chemin d’accès au fichier sur le disque dur est semblable C:\Inetpub\Wwwroot\ExcelCSTestà . Wwwroot contient ExcelData.xls, ExcelCSTest contient WebForm1.aspx.

Le chemin d’accès IIS aux fichiers est semblable C:\Web Root\ExcelCSTestà . Et Web Root contient ExcelData.xls, ExcelCSTest contient WebForm1.aspx.

Dans ce cas, le chemin d’accès relatif de la page WebForm1.aspx au fichier ExcelData.xls est .. /ExcelData.xls. .. Les caractères / informent IIS de monter d’un niveau de dossier. Le code Server.MapPath("../ExcelData.xls") retourne donc la chaîne suivante :

C:\Inetpub\Wwwroot\ExcelData.xls

Vous n’êtes pas obligé d’utiliser Server.MapPath. Vous pouvez également coder en dur ces informations dans un chemin d’accès spécifique, ou vous pouvez utiliser n’importe quelle méthode pour fournir l’emplacement du fichier Excel sur le disque dur.

References

Pour plus d’informations sur l’utilisation de ADO.NET, consultez Comment remplir un objet DataSet à partir d’une base de données à l’aide de Visual C# .NET

Remarque

Les exemples d’entreprises, d’organisations, de produits, de noms de domaine, d’adresses de messagerie, de logos, de personnes, de lieux et d’événements présentés ici sont fictifs. Aucune association avec une entreprise, un organization, un produit, un nom de domaine, une adresse e-mail, un logo, une personne, des lieux ou des événements réels n’est prévue ou ne doit être déduite.