Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Excel in ASP.NET anzeigt

Dieses umfassende Tutorial demonstriert, wie man einen Excel-Viewer mit ASP.NET MVC und IronXL erstellt. Dieser Viewer ermöglicht es Benutzern, Excel-Dateien direkt von ihrer Webseite aus anzuzeigen, zu bearbeiten und zu navigieren.

Was ist IronXL?

IronXL ist eine leistungsstarke .NET-Bibliothek, die eine Vielzahl von Funktionen in Bezug auf Excel-Operationen bietet. Es bietet eine vereinfachte API, die es .NET-Entwicklern ermöglicht, Excel-Dokumente in verschiedenen Dateiformaten wie XLS, XLSX, CSV und mehr zu schreiben, zu manipulieren und zu lesen.

Mit IronXL können Sie Excel-Dateien lesen, Daten extrahieren, Arbeitsblätter hinzufügen oder bearbeiten, Zeilen und Spalten erstellen oder ändern, Formeln anwenden, Änderungen speichern und vieles mehr. All diese Operationen können durchgeführt werden, ohne dass Microsoft Excel auf Ihrem Computer installiert sein muss.

IronXL unterstützt Bilder, Formatierung, bedingte Formatierung und andere komplexe Excel-Funktionen und ist damit eine umfassende Lösung for .NET-Excel-Operationen. Es ist perfekt für die Handhabung von Datenquellen- und Tabellenkalkulationsanforderungen Ihrer ASP.NET MVC-Anwendungen geeignet. Die IronXL-Bibliothek wird verwendet, um Excel-Dateien in ASP.NET-Webanwendungen anzuzeigen.

Voraussetzungen

  • Grundlegendes Verständnis von ASP.NET MVC
  • Visual Studio auf Ihrem Rechner installiert
  • Die IronXL-Bibliothek installiert. Die Installationsanleitung finden Sie in ihrer offiziellen Dokumentation.

Einstieg

Erstellen wir zuerst ein neues ASP.NET MVC-Projekt in Visual Studio.

  1. Öffnen Sie Visual Studio.
  2. Klicken Sie auf Datei > Neu > Projekt.
  3. Wählen Sie im neuen Projektfenster die Vorlage ASP.NET-Webanwendung (.NET Framework) aus.

    So zeigen Sie Excel in ASP.NET an, Abbildung 1: Erstellen einer neuen ASP.NET Webanwendung in Visual Studio Erstellen einer neuen ASP.NET-Webanwendung in Visual Studio

  4. Benennen Sie Ihr Projekt ExcelViewer, wählen Sie den Projektstandort und klicken Sie auf die Schaltfläche Erstellen.

    So zeigen Sie Excel in ASP.NET an, Abbildung 2: Konfigurieren Sie Ihr Projekt Konfigurieren Ihres Projekts

Dieser Artikel konzentriert sich auf die Implementierung der Excel-Viewer-Funktionalität in dieser ASP.NET MVC-Anwendung.

Hinzufügen von IronXL zu Ihrem Projekt

Um Excel-Dateiformate (wie .xls, .xlsx und .csv) zu handhaben, bietet IronXL umfassende Funktionen zum Laden von Excel-Dokumenten, Lesen, Schreiben und sogar zum Ändern von Excel-Daten. Es unterstützt Formeln, Bilder, Formatierung und vieles mehr.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer und gehen Sie zu NuGet-Pakete verwalten.
  2. Suchen Sie im NuGet-Paket-Manager nach IronXl.Excel.
  3. Klicken Sie auf Installieren, um es Ihrem Projekt hinzuzufügen.

    So zeigen Sie Excel in ASP.NET an, Abbildung 3: Suchen und installieren Sie das IronXL Paket in der NuGet -Paketverwaltungs-Benutzeroberfläche Suchen und installieren Sie das IronXL-Paket im NuGet-Paket-Manager-UI

Sie können IronXL auch mit dem folgenden Befehl über die Paket-Manager-Konsole installieren:

Install-Package IronXl.Excel

So zeigen Sie Excel in ASP.NET an, Abbildung 4: Installieren Sie das IronXL Paket über die Paket-Manager-Konsole Installieren Sie das IronXL-Paket über die Paket-Manager-Konsole

Jetzt, da IronXL installiert ist, gehen wir zum nächsten Schritt über.

Modelle erstellen

ExcelModel

Der erste Schritt ist das Erstellen eines Modells für die Excel-Daten. Die Klasse ExcelModel repräsentiert ein einzelnes Excel-Arbeitsblatt und enthält den Namen des Arbeitsblatts sowie die im Excel-Arbeitsblatt enthaltenen Daten.

namespace Excel_File_Viewer_IronXl.Models
{
    public class ExcelModel
    {
        public string SheetName { get; set; }

        // Data is a list of string arrays, each array represents a row in the sheet.
        public List<string[]> Data { get; set; }
    }
}
namespace Excel_File_Viewer_IronXl.Models
{
    public class ExcelModel
    {
        public string SheetName { get; set; }

        // Data is a list of string arrays, each array represents a row in the sheet.
        public List<string[]> Data { get; set; }
    }
}
$vbLabelText   $csharpLabel

Der Code ExcelModel wird mit zwei Eigenschaften definiert, SheetName und Data. SheetName ist eine einfache Zeichenkette, die den Namen jedes Excel-Tabellenblatts enthält. Data ist eine Liste von String-Arrays, um die Daten jeder Zeile im Excel-Arbeitsblatt zu speichern.

ExcelViewModel

Als nächstes erstellen wir ExcelViewModel. Dieses Modell ist ein Wrapper, der eine Datei, eine Nachricht und eine Liste von ExcelModel enthält, die Daten aus allen Tabellenblättern der Datei repräsentiert.

using Microsoft.AspNetCore.Http;
using System.Collections.Generic;

namespace Excel_File_Viewer_IronXl.Models
{
    public class ExcelViewModel
    {
        public IFormFile File { get; set; }  // For uploading Excel file
        public string Message { get; set; }  // Message for storing success/error messages
        public List<ExcelModel> ExcelData { get; set; }  // List to store data from all sheets
    }
}
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;

namespace Excel_File_Viewer_IronXl.Models
{
    public class ExcelViewModel
    {
        public IFormFile File { get; set; }  // For uploading Excel file
        public string Message { get; set; }  // Message for storing success/error messages
        public List<ExcelModel> ExcelData { get; set; }  // List to store data from all sheets
    }
}
$vbLabelText   $csharpLabel

Diese Klasse wird als View-Model verwendet. Es verfügt über eine IFormFile Eigenschaft zum Hochladen von Dateien, eine Message Zeichenkette zur Anzeige von Meldungen und eine List<ExcelModel> zum Speichern der abgerufenen Excel-Daten.

5. Erstellen Sie ExcelController, um Excel-Dateien zur Datenextraktion zu laden.

Erstellen Sie dann ein neues ExcelController. Hier geschieht die Magie! Die Excel-Dateien werden mit Hilfe der IronXL-Funktion WorkBook.Load geladen, durchlaufen die Arbeitsblätter, extrahieren die Daten und fügen sie der Funktion ExcelViewModel hinzu.

using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;

public class ExcelController : Controller
{
    // GET: Excel
    public ActionResult Index()
    {
        var model = new ExcelViewModel();

        // Define the file path for the Excel file
        string filePath = Server.MapPath("~/App_Data/Test.xlsx"); 

        // List to store data for each sheet
        List<ExcelModel> data = new List<ExcelModel>();

        try
        {
            // Load workbook directly from a file path
            var workbook = WorkBook.Load(filePath);

            // Loop through all worksheets in the workbook
            foreach (var worksheet in workbook.WorkSheets)
            {
                // Add each worksheet's name and data to the data list
                data.Add(new ExcelModel
                {
                    SheetName = worksheet.Name,
                    Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
                });
            }

            model.ExcelData = data;
            model.Message = "File processed successfully!";
        }
        catch (Exception ex)
        {
            model.Message = $"Error occurred while processing file: {ex.Message}";
        }

        return View(model);
    }
}
using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;

public class ExcelController : Controller
{
    // GET: Excel
    public ActionResult Index()
    {
        var model = new ExcelViewModel();

        // Define the file path for the Excel file
        string filePath = Server.MapPath("~/App_Data/Test.xlsx"); 

        // List to store data for each sheet
        List<ExcelModel> data = new List<ExcelModel>();

        try
        {
            // Load workbook directly from a file path
            var workbook = WorkBook.Load(filePath);

            // Loop through all worksheets in the workbook
            foreach (var worksheet in workbook.WorkSheets)
            {
                // Add each worksheet's name and data to the data list
                data.Add(new ExcelModel
                {
                    SheetName = worksheet.Name,
                    Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
                });
            }

            model.ExcelData = data;
            model.Message = "File processed successfully!";
        }
        catch (Exception ex)
        {
            model.Message = $"Error occurred while processing file: {ex.Message}";
        }

        return View(model);
    }
}
$vbLabelText   $csharpLabel

Hier wird ein ExcelViewModel initialisiert und anschließend das WorkBook mit IronXL geladen. Danach wird jedes WorkSheet durchlaufen und für jedes WorkSheet wird ein ExcelModel mit dem Namen und den Daten des Arbeitsblatts erstellt. Der Eintrag ExcelModel wird dann der Liste ExcelData in der Liste ExcelViewModel hinzugefügt.

Die Daten der folgenden Excel-Datei werden geladen und angezeigt:

So zeigen Sie Excel in ASP.NET an, Abbildung 5: Die Excel-Beispieldatei Die Mustertabelle

6. Erstellen Sie die Ansicht

Erstellen Sie im Verzeichnis Views/Excel eine neue HTML-Datei Index.cshtml, um Excel-Daten anzuzeigen. Verwenden Sie anschließend Bootstraps nav-tabs, um jedes Tabellenblatt in der Excel-Datei darzustellen. Jedes Tabellenblatt wird als separate Registerkarte angezeigt, und der Inhalt der Registerkarte entspricht den Daten des jeweiligen Tabellenblatts.

@model Excel_File_Viewer_IronXl.Models.ExcelViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Excel File Viewer</h2>

@if (Model.ExcelData != null)
{
    <ul class="nav nav-tabs" id="myTab" role="tablist">
        @for (int i = 0; i < Model.ExcelData.Count; i++)
        {
            <li class="nav-item">
                <a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
                    @Model.ExcelData[i].SheetName
                </a>
            </li>
        }
    </ul>
    <div class="tab-content" id="myTabContent">
        @for (int i = 0; i < Model.ExcelData.Count; i++)
        {
            <div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
                <table class="table table-bordered">
                    @foreach (var row in Model.ExcelData[i].Data)
                    {
                        <tr>
                            @foreach (var cell in row)
                            {
                                <td>@cell</td>
                            }
                        </tr>
                    }
                </table>
            </div>
        }
    </div>
}
@model Excel_File_Viewer_IronXl.Models.ExcelViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Excel File Viewer</h2>

@if (Model.ExcelData != null)
{
    <ul class="nav nav-tabs" id="myTab" role="tablist">
        @for (int i = 0; i < Model.ExcelData.Count; i++)
        {
            <li class="nav-item">
                <a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
                    @Model.ExcelData[i].SheetName
                </a>
            </li>
        }
    </ul>
    <div class="tab-content" id="myTabContent">
        @for (int i = 0; i < Model.ExcelData.Count; i++)
        {
            <div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
                <table class="table table-bordered">
                    @foreach (var row in Model.ExcelData[i].Data)
                    {
                        <tr>
                            @foreach (var cell in row)
                            {
                                <td>@cell</td>
                            }
                        </tr>
                    }
                </table>
            </div>
        }
    </div>
}
$vbLabelText   $csharpLabel

In diesem Codebeispiel erzeugt nav nav-tabs eine Liste von Registerkarten, die jeweils ein Tabellenblatt der Excel-Datei repräsentieren. Der Inhalt der entsprechenden Registerkarte zeigt die Daten des jeweiligen Tabellenblatts in Tabellenform an. Durch einige Änderungen wird eine Durchsuchen-Schaltfläche hinzugefügt, um die Excel-Datei manuell auszuwählen.

Das Programm ausführen

Nachdem Sie alle Schritte befolgt und das Projekt korrekt eingerichtet haben, ist es an der Zeit, es auszuführen. Sie sollten eine Webseite mit Tabs sehen, die nach den Blattnamen in Ihrer Excel-Datei benannt sind. Wenn Sie auf einen Tab klicken, werden die entsprechenden Blattdaten in einem Tabellenformat angezeigt.

So zeigen Sie Excel in ASP.NET an, Abbildung 6: Der Excel-Viewer Der Excel-Viewer

Abschluss

Sie haben gerade einen ASP.NET-Excel-Viewer mit IronXL erstellt! Diese leistungsstarke Bibliothek ermöglicht es Benutzern, effizienter und übersichtlicher mit Excel-Dateien zu arbeiten. Mit der Hilfe von IronXL war der Umgang mit Excel-Dateien in der .NET-Umgebung noch nie einfacher.

IronXL bietet eine kostenlose Testversion , mit der Sie die umfangreichen Funktionen unverbindlich erkunden können. Sobald Sie IronXL getestet und für Ihre Bedürfnisse als optimale Lösung befunden haben, beginnt die Lizenz ab $799.

Häufig gestellte Fragen

Wie kann ich einen Excel Viewer mit ASP.NET MVC erstellen?

Sie können einen Excel Viewer mit ASP.NET MVC erstellen, indem Sie ein neues Projekt in Visual Studio einrichten und die IronXL-Bibliothek über den NuGet-Paketmanager hinzufügen. Dadurch können Sie Excel-Dateien direkt in Ihrer Webanwendung laden, anzeigen und bearbeiten.

Was sind die Schritte, um ein ASP.NET MVC Projekt zum Umgang mit Excel-Dateien einzurichten?

Um ein ASP.NET MVC Projekt zum Umgang mit Excel-Dateien einzurichten, öffnen Sie Visual Studio, erstellen Sie ein neues ASP.NET-Webanwendungsprojekt und installieren Sie die IronXL-Bibliothek über NuGet. Erstellen Sie anschließend Modelle wie ExcelModel und ExcelViewModel, um Excel-Daten zu verwalten, und verwenden Sie den ExcelController, um Excel-Dateien zu laden und zu verarbeiten.

Kann ich mehrere Excel-Blätter in einer ASP.NET Anwendung anzeigen?

Ja, Sie können mehrere Excel-Blätter in einer ASP.NET-Anwendung anzeigen, indem Sie IronXL verwenden, um die Excel-Datei zu laden, und dann Bootstrap's nav-tabs verwenden, um separate Registerkarten für jedes Blatt zu erstellen und die Daten in einem Tabellenformat anzuzeigen.

Wie lade und verarbeite ich eine Excel-Datei in ASP.NET mit einer .NET-Bibliothek?

In ASP.NET können Sie eine Excel-Datei mit der WorkBook.Load-Methode von IronXL laden und verarbeiten. Diese Methode ermöglicht es Ihnen, die Excel-Datei zu lesen, durch ihre Arbeitsblätter zu iterieren und die Daten zur Anzeige oder weiteren Bearbeitung zu extrahieren.

Was sind die Vorteile der Verwendung von IronXL für Excel-Operationen in .NET?

IronXL bietet mehrere Vorteile für Excel-Operationen in .NET, einschließlich Unterstützung für verschiedene Excel-Dateiformate, die Fähigkeit zur Manipulation komplexer Excel-Features wie Bilder und bedingtem Formatieren, und den Vorteil, dass keine Installation von Microsoft Excel auf dem Server erforderlich ist.

Wie kann ich häufige Probleme beim Erstellen eines ASP.NET Excel Viewers beheben?

Häufige Probleme beim Erstellen eines ASP.NET Excel Viewers können behoben werden, indem sichergestellt wird, dass die IronXL-Bibliothek korrekt über NuGet installiert ist, alle notwendigen Modelle und Controller richtig implementiert sind und die Excel-Dateien in einem unterstützten Format vorliegen.

Ist es möglich, Excel-Dateien direkt von einer ASP.NET-Webseite aus zu bearbeiten?

Ja, es ist möglich, Excel-Dateien direkt von einer ASP.NET-Webseite aus mit IronXL zu bearbeiten. Die Bibliothek ermöglicht es Ihnen, Excel-Dateien in Ihre Webanwendung zu laden, Daten zu ändern und nahtlos Änderungen zurück in die Datei zu speichern.

Unterstützt IronXL sowohl das Lesen als auch das Schreiben von Excel-Dateien?

Ja, IronXL unterstützt sowohl das Lesen als auch das Schreiben von Excel-Dateien. Sie können es verwenden, um Daten aus vorhandenen Excel-Dokumenten zu lesen und neue Daten oder Änderungen in Excel-Dateien in mehreren Formaten zu schreiben, einschließlich XLS, XLSX und CSV.

Welche Modelle sollten erstellt werden, um Excel-Daten in einer ASP.NET MVC-Anwendung zu verwalten?

In einer ASP.NET MVC-Anwendung sollten Sie Modelle wie ExcelModel erstellen, um einzelne Excel-Blätter darzustellen, und ExcelViewModel, um eine Sammlung von Blättern zu verwalten und Dateiupload und Messaging zu bearbeiten.

Wie kann ich die Funktionen von IronXL vor dem Kauf testen?

Sie können die Funktionen von IronXL testen, indem Sie die kostenlose Testversion auf ihrer Website herunterladen. Diese Testversion erlaubt es Ihnen, die Fähigkeiten der Bibliothek im Umgang mit Excel-Dateien innerhalb Ihrer .NET-Anwendungen ohne anfängliche Kosten zu erkunden.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me