Abfragen und Anzeigen von Excel-Daten mithilfe von ASP.NET, ADO.NET und Visual C# .NET

In diesem Artikel wird das Abfragen und Anzeigen von Daten aus einem Excel-Arbeitsblatt über eine ASP.NET-Seite (.aspx) mithilfe von Visual C# .NET veranschaulicht.

              Originale Produktversion: ASP.NET
Ursprüngliche KB-Nummer: 306572

Erstellen eines Excel-Beispielarbeitsblatts

  1. Starten Sie Microsoft Excel, und erstellen Sie dann ein neues Arbeitsblatt.

  2. Fügen Sie dem neuen Arbeitsblatt die folgenden Informationen hinzu, um eine Excel-Datenbank zu erstellen:

    Zeilennummer Ein B
    1 FirstName LastName
    2 Scott Bischof
    3 Katie Jordanien

    Hinweis

    Obwohl die Daten in diesem Beispiel mit Zelle A1 beginnen, können Sie diese Daten allen angrenzenden Zellen innerhalb des Arbeitsblatts hinzufügen.

  3. Markieren Sie die Zeilen und Spalten, in denen sich die Daten befinden.

  4. Zeigen Sie im Menü Einfügen auf Name, und klicken Sie dann auf Definieren.

  5. Geben Sie im Textfeld Namen in ArbeitsmappemyRange1 ein, und klicken Sie dann auf OK.

  6. Klicken Sie im Menü Datei auf Speichern . Wählen Sie in der Liste Speichern in den Stamm des Webservers aus (in der Regel C:\InetPub\Wwwroot\). Geben Sie im Textfeld DateinameExcelData.xlsein. Klicken Sie auf OK.

  7. Klicken Sie im Menü Datei auf Beenden.

Erstellen eines ASP.NET Beispiels mithilfe von Visual C# .NET

In diesem Codebeispiel wird veranschaulicht, wie Sie Informationen in einem Excel-Arbeitsblatt abfragen und anzeigen. Der folgende Code verwendet das Arbeitsblatt, das Sie im vorherigen Abschnitt erstellt haben.

  1. Öffnen Sie Microsoft Visual Studio .NET. Die integrierte Entwicklungsumgebung (IDE) von Visual Studio .NET wird angezeigt.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  3. Klicken Sie im Dialogfeld Neues Projekt unter Projekttypen auf Visual C#-Projekte. Klicken Sie unter Vorlagen auf ASP.NET-Webanwendung.

  4. Suchen Sie im Dialogfeld Neues Projekt die Textfelder Name und Speicherort .

    Hinweis

    • Das Textfeld Name ist nicht verfügbar (es wird abgeblendet oder abgeblendet angezeigt). Das Textfeld Speicherort enthält den Text (oder ähnlich). http://localhost/WebApplication1
    • Ersetzen Sie den Text im Textfeld Speicherort durch http://localhost/ExcelCSTest, und klicken Sie dann auf OK. Es wird ein neues Projekt erstellt, das ein Webformular mit dem Namen WebForm1.aspx enthält.
  5. Suchen Sie in der Visual Studio .NET-IDE das fenster Projektmappen-Explorer. Wenn Sie sie nicht finden können, klicken Sie im Menü Ansicht auf Projektmappen-Explorer.

  6. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf WebForm1.aspx, und klicken Sie dann auf Ansicht Designer, um den Designer für die Darstellung der Seite anzuzeigen. Mit dem Designer können Sie Steuerelemente hinzufügen und die Darstellung der Seite ändern.

  7. Suchen Sie die Toolbox. Abhängig von den Einstellungen Ihrer IDE-Option kann die Toolbox als Fenster oder Schaltfläche angezeigt werden (die häufig auf der linken Seite der IDE angezeigt wird). Wenn Sie die Toolbox nicht finden können, klicken Sie im Menü Ansicht auf Toolbox.

    Wenn die Toolbox als Schaltfläche angezeigt wird, bewegen Sie den Zeiger über die Schaltfläche, damit der Inhalt der Toolbox angezeigt wird.

  8. Wenn die Designeransicht eines Webformulars aktiv ist, wird die Toolbox in Abschnitte unterteilt, einschließlich der Web Forms, Komponenten, HTML und anderen Abschnitten. Klicken Sie auf den Abschnitt Web Forms.

  9. Klicken Sie im abschnitt Web Forms der Toolbox auf DataGrid, und ziehen Sie es dann auf den Designer für WebForm1.

  10. Klicken Sie mit der rechten Maustaste auf WebForm1.aspx, und klicken Sie dann auf Code anzeigen , um die Quelle der CodeBehind-Seite anzuzeigen.

  11. Fügen Sie oben auf der CodeBehind-Seite oberhalb des Namespaceabschnitts die folgenden Anweisungen hinzu:

    using System.Data.OleDb;
    using System.Data;
    
  12. Markieren Sie den folgenden Code, klicken Sie mit der rechten Maustaste auf den Code, und klicken Sie dann auf Kopieren. Fügen Sie WebForm1.aspx.cs den Code in das Page_Load -Ereignis ein:

    // 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. Klicken Sie im Menü Datei auf Alle speichern , um die Projektdateien zu speichern.

  14. Klicken Sie im Menü Erstellen auf Erstellen , um das Projekt zu erstellen. In diesem Schritt wird der Code auf der CodeBehind-Seite so vorbereitet, dass er ausgeführt werden kann.

  15. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf WebForm1.aspx, und klicken Sie dann auf Im Browser anzeigen, um den Code auszuführen.

Zusätzliche Codeerklärung

Im Codebeispiel in diesem Artikel wird der Microsoft Jet OLE DB-Anbieter für den Zugriff auf das Excel-Arbeitsblatt verwendet. Dieser Code verwendet die folgenden Verbindungszeichenfolge, um eine Verbindung mit dem Arbeitsblatt herzustellen:

// 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;";

Wie in den Kommentaren angegeben, müssen Sie die Pfadinformationen für das jeweilige Excel-Arbeitsblatt ändern. Darüber hinaus müssen Sie auch den Wert des Extended Properties Parameters festlegen, um eine ordnungsgemäße Verbindung mit der Datei herzustellen.

Hinweis

Die Verbindungszeichenfolge verwendet die Server.MapPath -Funktion. Diese Funktion verwendet einen Pfad, der relativ zu Microsoft-Internetinformationsdienste (IIS) zu einer Datei ist, und gibt einen Festplattenpfad zu dieser Datei zurück. Beispielsweise erstellen Sie im Abschnitt Excel-Beispielarbeitsblatt erstellenExcelData.xls im Webstammverzeichnis, das sich in der Regel unter C:\Inetpub\Wwwrootbefindet. Dadurch wird auch ein Unterordner namens ExcelCSTest im Ordner Wwwroot und eine Datei mit dem Namen WebForm1.aspx im _ExcelCSTest_folder erstellt.

In diesem Beispiel lautet der Dateipfad auf der Festplatte wie C:\Inetpub\Wwwroot\ExcelCSTest. Wwwroot enthält ExcelData.xls, ExcelCSTest enthält WebForm1.aspx.

Der IIS-Pfad zu den Dateien ist wie C:\Web Root\ExcelCSTest. Webstamm enthält ExcelData.xls, ExcelCSTest enthält WebForm1.aspx.

In diesem Fall ist der relative Pfad von der WebForm1.aspx Seite zur ExcelData.xls Datei .. /ExcelData.xls. Die .. / Zeichen geben IIS an, eine Ordnerebene nach oben zu wechseln. Daher gibt der Code Server.MapPath("../ExcelData.xls") die folgende Zeichenfolge zurück:

C:\Inetpub\Wwwroot\ExcelData.xls

Sie müssen nicht verwenden Server.MapPath. Sie können diese Informationen auch in einen bestimmten Pfad hartcodieren, oder Sie können eine beliebige Methode verwenden, um den Speicherort der Excel-Datei auf der Festplatte anzugeben.

References

Weitere Informationen zur Verwendung von ADO.NET finden Sie unter Auffüllen eines DataSet-Objekts aus einer Datenbank mithilfe von Visual C# .NET.

Hinweis

Die hier dargestellten Beispielunternehmen, Organisationen, Produkte, Domänennamen, E-Mail-Adressen, Logos, Personen, Orte und Ereignisse sind fiktiv. Es ist keine Zuordnung mit echtem Unternehmen, organization, Produkt, Domänenname, E-Mail-Adresse, Logo, Person, Orten oder Ereignissen beabsichtigt oder sollte abgeleitet werden.