Interroger et afficher des données Excel à l’aide de ASP.NET, ADO.NET et Visual C# .NET
Cet article montre 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 de produit d’origine : ASP.NET
Numéro de base de connaissances d’origine : 306572
Créer un exemple de feuille de calcul Excel
Démarrez Microsoft Excel, puis créez une feuille de calcul.
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 de la feuille de calcul.
Mettez en surbrillance les lignes et les colonnes où se trouvent les données.
Dans le menu Insertion , pointez sur Nom, puis cliquez sur Définir.
Dans la zone de texte Noms du classeur , tapez myRange1, puis cliquez sur OK.
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.Dans le menu Fichier, cliquez sur Quitter.
Créer un exemple 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.
Ouvrez Microsoft Visual Studio .NET. L’environnement de développement intégré (IDE) Visual Studio .NET s’affiche.
On the File menu, point to New, and then click Project.
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.
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 de la zone
http://localhost/ExcelCSTest
de texte Emplacement par , puis cliquez sur OK. Un nouveau projet est créé, qui inclut un formulaire web nommé WebForm1.aspx.
- 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).
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.
Dans Explorateur de solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Concepteur de vues 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.
Recherchez la boîte à outils. Selon vos paramètres d’option d’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 s’affiche sous la forme d’un bouton, déplacez le pointeur sur le bouton afin que le contenu de la boîte à outils s’affiche.
Lorsque la vue concepteur d’un formulaire web est active, la boîte à outils est divisée en sections, notamment les sections Web Forms, Composants, HTML et autres. Cliquez sur la section Web Forms.
Dans la section Web Forms de la boîte à outils, cliquez sur DataGrid, puis faites-le glisser sur le concepteur pour WebForm1.
Cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher le code pour afficher la source de page code-behind.
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;
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();
Dans le menu Fichier , cliquez sur Enregistrer tout pour enregistrer les fichiers projet.
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é.
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 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 :
// 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 les commentaires l’indiquent, 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 se connecter correctement au fichier.
Remarque
La chaîne de connexion utilise la Server.MapPath
fonction. Cette fonction prend un chemin 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 dans 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 la racine web contient ExcelData.xls, ExcelCSTest contient WebForm1.aspx.
Dans ce cas, le chemin relatif de la page WebForm1.aspx vers le fichier ExcelData.xls est .. /ExcelData.xls. Le .. Les caractères indiquent à 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 sur un chemin 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 décrits ici sont fictifs. Aucune association avec une entreprise, une organisation, 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.
Commentaires
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Envoyer et afficher des commentaires pour