
Jak przeglądać Excel w ASP.NET
Ten obszerny samouczek pokaże, jak zbudować przeglądarkę plików Excel przy użyciu ASP.NET MVC i IronXL. Ta przeglądarka umożliwi użytkownikom wyświetlanie, edycję i poruszanie się po plikach Excel bezpośrednio ze strony internetowej.
Czym jest IronXL?
IronXL to potężna biblioteka .NET, która zapewnia mnóstwo funkcji związanych z operacjami w programie Excel. Oferuje uproszczony interfejs API, który pozwala programistom .NET na tworzenie, edycję i odczyt dokumentów Excel w różnych formatach plików, w tym XLS, XLSX, CSV i innych.
Dzięki IronXL możesz odczytywać pliki Excel, wyodrębniać dane, dodawać lub edytować arkusze, tworzyć lub modyfikować wiersze i kolumny, stosować formuły, zapisywać zmiany i wiele więcej. Wszystkie te operacje można wykonać bez konieczności instalowania programu Microsoft Excel na komputerze.
IronXL obsługuje obrazy, stylizację, formatowanie warunkowe i inne złożone funkcje programu Excel, co czyni go kompleksowym rozwiązaniem do operacji .NET w programie Excel. Idealnie nadaje się do obsługi wymagań dotyczących źródeł danych i arkuszy kalkulacyjnych w aplikacjach ASP.NET MVC. Biblioteka IronXL będzie wykorzystywana do wyświetlania plików Excel w aplikacjach internetowych ASP.NET.
Wymagania wstępne
- Podstawowa znajomość ASP.NET MVC
- Visual Studio zainstalowane na Twoim komputerze
- Zainstalowano bibliotekę IronXL. Instrukcję instalacji można znaleźć w oficjalnej dokumentacji.
Pierwsze kroki
Najpierw utwórzmy nowy projekt ASP.NET MVC w programie Visual Studio.
- Otwórz program Visual Studio.
- Kliknij Plik > Nowy > Projekt.
- W oknie nowego projektu wybierz szablon Aplikacja internetowa ASP.NET (.NET Framework).
Utwórz nową aplikację internetową ASP.NET w programie Visual Studio
- Nadaj projektowi nazwę ExcelViewer, wybierz lokalizację projektu i kliknij przycisk Utwórz.
Skonfiguruj swój projekt
W tym artykułe skupimy się na wdrożeniu funkcji przeglądarki plików Excel w tej aplikacji ASP.NET MVC.
Dodawanie IronXL do projektu
Aby obsługiwać formaty plików Excel (takie jak .xls, .xlsx i .csv), IronXL oferuje kompleksowe funkcje do ładowania dokumentów Excel, odczytu, zapisu, a nawet modyfikacji danych Excel. Obsługuje formuły, obrazy, formatowanie i wiele więcej.
- Kliknij prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań i przejdź do opcji Zarządzaj pakietami NuGet.
- W menedżerze pakietów NuGet wyszukaj IronXL.Excel.
- Kliknij przycisk "Zainstaluj", aby dodać bibliotekę do projektu.
Wyszukaj i zainstaluj pakiet IronXL w interfejsie użytkownika NuGet Package Manager
Można również zainstalować IronXL za pomocą konsoli menedżera pakietów, używając następującego polecenia:
Zainstaluj pakiet IronXL z konsoli menedżera pakietów
Teraz, gdy IronXL jest już zainstalowany, przejdźmy do następnego kroku.
Tworzenie modeli
ExcelModel
Pierwszym krokiem jest utworzenie modelu danych w programie Excel. Klasa ExcelModel będzie reprezentować pojedynczy arkusz Excel i będzie zawierać nazwę arkusza oraz dane obecne w arkuszu Excel.
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; }
}
}
ExcelModel jest zdefiniowany z dwiema właściwościami, SheetName i Data. SheetName to prosty ciąg znaków do przechowywania nazwy każdego arkusza Excel. Data to Lista tablic ciągów znaków do przechowywania danych każdego wiersza w arkuszu Excel.
ExcelViewModel
Następnie utwórzmy ExcelViewModel. Ten model jest opakowaniem zawierającym plik, wiadomość i listę ExcelModel, które reprezentują dane ze wszystkich arkuszy w pliku.
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
}
}Imports Microsoft.AspNetCore.Http
Imports System.Collections.Generic
Namespace Excel_File_Viewer_IronXl.Models
Public Class ExcelViewModel
Public Property File As IFormFile ' For uploading Excel file
Public Property Message As String ' Message for storing success/error messages
Public Property ExcelData As List(Of ExcelModel) ' List to store data from all sheets
End Class
End NamespaceTa klasa będzie używana jako model widoku. Posiada właściwość IFormFile do przesyłania plików, ciąg Message do wyświetlania wszelkich komunikatów oraz List<ExcelModel> do przechowywania pobranych danych z Excela.
5. Utwórz ExcelController do załadowania plików Excel w celu ekstrakcji danych
Następnie utwórz nowy ExcelController. To właśnie tutaj dzieje się magia! Pliki Excel są ładowane za pomocą funkcji IronXL WorkBook.Load, przeglądając arkusze, wyodrębniając dane i dodając je do ExcelViewModel.
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);
}
}
Tutaj zainicjuj ExcelViewModel, a następnie załaduj WorkBook za pomocą IronXL, przeglądaj każdy WorkSheet, a dla każdego WorkSheet, tworzymy ExcelModel z nazwą i danymi z arkusza. ExcelModel jest następnie dodawany do listy ExcelData w ExcelViewModel.
Dane z poniższego pliku Excel zostaną załadowane i wyświetlone:
Przykładowy plik Excel
6. Utwórz widok
W katalogu Views/Excel utwórz nowy plik HTML Index.cshtml, aby wyświetlić dane z Excela. Następnie użyj nav-tabs Bootstrap do reprezentowania każdego arkusza w pliku Excel. Każdy arkusz będzie osobną kartą, a treść karty to dane arkusza.
@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>
}netW tym przykładzie kodu nav nav-tabs wygeneruje listę kart, z których każda reprezentuje arkusz z pliku Excel. Odpowiadająca treść karty wyświetli dane odpowiedniego arkusza w formacie tabeli. Po wprowadzeniu pewnych zmian dodano przycisk przeglądania, umożliwiający ręczny wybór pliku Excel.
Uruchamianie programu
Po wykonaniu wszystkich kroków i prawidłowym skonfigurowaniu projektu nadszedł czas, aby go uruchomić. Powinna pojawić się strona internetowa z zakładkami o nazwach odpowiadających nazwom arkuszy w pliku Excel. Kliknięcie na zakładkę spowoduje wyświetlenie danych z danego arkusza w formie tabeli.
Przeglądarka Excel
Wnioski
Właśnie stworzyłeś przeglądarkę plików Excel dla ASP.NET przy użyciu IronXL! Ta potężna biblioteka umożliwia użytkownikom pracę z plikami Excel w bardziej wydajny i łatwiejszy w zarządzaniu sposób. Dzięki IronXL praca z plikami Excel w środowisku .NET nigdy nie była łatwiejsza.
IronXL oferuje bezpłatną wersję próbną, która pozwala na eksplorację i zrozumienie jego ogromnych funkcjonalności bez jakichkolwiek kosztów początkowych. Po przetestowaniu i uznaniu za idealne rozwiązanie dla Twoich potrzeb, licencja zaczyna się od $999.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.
Powiązane artykuły



