Odczytywanie plików Excel w ASP.NET MVC za pomocą C# z IronXL
IronXL pozwala programistom ASP.NET MVC na czytanie plików Excela bezpośrednio w C# bez zależności od Microsoft Office, konwertując dane Excela do System.Data.DataTable dla łatwego wyświetlania w widokach sieciowych przy użyciu zaledwie kilku linii kodu.
Ten przykład pokazuje, jak zacząć w kilka sekund: załaduj skoroszyt Excela, wybierz jego pierwszy arkusz i skonwertuj go do System.Data.DataTable używając IronXL — bez Interopu, bez kłopotów.
-
1Install IronXL with NuGet Package Manager
-
2Skopiuj i uruchom ten fragment kodu.
var dataTable = IronXL.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true);C# -
3Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj bibliotekę C#, aby czytać pliki Excel w ASP.NET
- Załaduj i uzyskaj dostęp do docelowego arkusza w pliku Excel
- Uzyskaj dostęp do metody
ToDataTablei zwróć ją doView - Wyświetl dane Excel na stronie internetowej używając pętli
- Iteruj przez wszystkie dane i zbuduj tabelę HTML
Jak utworzyć projekt ASP.NET do odczytu Excela?
Dlaczego Visual Studio 2022 działa najlepiej?
Korzystając z Visual Studio 2022, utwórz nowy projekt ASP.NET. Visual Studio 2022 zapewnia doskonałe wsparcie dla .NET 6+ frameworks, ulepszoną funkcjonalność IntelliSense dla metod IronXL oraz lepszą wydajność podczas pracy z dużymi plikami Excela. Integracja NuGet w IDE sprawia, że instalowanie IronXL jest szczególnie proste.
Jaki szablon projektu wybrać?
Do odczytu plików Excel w ASP.NET, wybierz szablon "ASP.NET Core Web App (Model-View-Controller)". Ten szablon zapewnia czystą strukturę MVC, która oddziela przetwarzanie danych (odczyt Excela) od logiki prezentacji. Wzorzec MVC działa doskonale z konwersją IronXL na DataTable, pozwalając na ładowanie arkuszy kalkulacyjnych w kontrolerach i wyświetlanie ich w widokach bezproblemowo.
Która wersja .NET jest zalecana?
IronXL współpracuje z .NET Framework 4.6.2+ i .NET Core 3.1+. Dla nowych projektów ASP.NET MVC używaj .NET 6.0 lub wyższej dla optymalnej wydajności i bezpieczeństwa. Te wersje oferują lepsze zarządzanie pamięcią przy przetwarzaniu dużych plików Excel oraz lepsze wsparcie async/await dla konwersji typów plików arkuszy kalkulacyjnych.
Jak zainstalować bibliotekę IronXL?
Jakie są wymagania instalacyjne?
Jaka metoda instalacji jest najszybsza?
Po utworzeniu nowego projektu, zainstaluj bibliotekę IronXL. Postępuj zgodnie z tymi krokami, aby zainstalować IronXL. Otwórz konsolę menedżera pakietów NuGet i uruchom następujące polecenie:
Jak mogę zweryfikować instalację?
Aby zweryfikować, że IronXL jest poprawnie zainstalowane, sprawdź zależności projektu w Eksploratorze rozwiązań. Powinieneś zobaczyć "IronXL" wymienione w "Dependencies > Packages". Dodatkowo, spróbuj dodać using IronXL; na początku pliku kontrolera - IntelliSense powinno natychmiast rozpoznać przestrzeń nazw. Aby rozwiązać problemy z instalacją, odwiedź przewodnik licencyjny.
Jak odczytać plik Excel w moim kontrolerze?
Jaki kod umieścić w akcji kontrolera?
Otwórz domyślny kontroler w projekcie ASP.NET (np. HomeController.cs) i zastąp metodę Index następującym kodem:
using IronXL;
using System.Data;
public ActionResult Index()
{
// Load the Excel workbook from a specified path.
WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
// Access the first worksheet from the workbook.
WorkSheet workSheet = workBook.WorkSheets.First();
// Convert the worksheet data to a DataTable object.
// The 'true' parameter uses the first row as column headers
var dataTable = workSheet.ToDataTable(true);
// Send the DataTable to the view for rendering.
return View(dataTable);
}Imports IronXL
Imports System.Data
Public Function Index() As ActionResult
' Load the Excel workbook from a specified path.
Dim workBook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")
' Access the first worksheet from the workbook.
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
' Convert the worksheet data to a DataTable object.
' The 'true' parameter uses the first row as column headers
Dim dataTable = workSheet.ToDataTable(True)
' Send the DataTable to the view for rendering.
Return View(dataTable)
End FunctionDlaczego używać DataTable zamiast innych formatów?
W metodzie akcji Index, załaduj plik Excela przy użyciu metody IronXL z Load. Ścieżka pliku Excel (w tym nazwa pliku) jest podawana jako parametr wywołania metody. Następnie wybierz pierwszy arkusz Excela jako arkusz roboczy i załaduj dane w nim zawarte do obiektu DataTable. Na koniec, wyślij DataTable do frontend.
DataTable jest idealne dla ASP.NET MVC, ponieważ integruje się bezproblemowo z widokami Razor i zapewnia wbudowane wsparcie dla iteracji przez wiersze i kolumny. W przeciwieństwie do obiektów niestandardowych, DataTable nie wymaga mapowania modelu i automatycznie obsługuje mieszane typy danych. Możesz także eksportować DataSet i DataTable z powrotem do Excela, gdy jest to potrzebne.
A co z obsługą błędów dla brakujących plików?
Solidna obsługa błędów zapewnia, że aplikacja nie zawiesi się, gdy pliki Excel są brakujące lub uszkodzone. Oto ulepszona wersja z odpowiednią obsługą wyjątków:
public ActionResult Index()
{
try
{
string filePath = @"C:\Files\Customer Data.xlsx";
// Check if file exists before attempting to load
if (!System.IO.File.Exists(filePath))
{
ViewBag.Error = "Excel file not found at specified location.";
return View(new DataTable());
}
// Load workbook with error handling
WorkBook workBook = WorkBook.Load(filePath);
// Verify worksheet exists
if (workBook.WorkSheets.Count == 0)
{
ViewBag.Error = "No worksheets found in the Excel file.";
return View(new DataTable());
}
WorkSheet workSheet = workBook.WorkSheets.First();
var dataTable = workSheet.ToDataTable(true);
return View(dataTable);
}
catch (Exception ex)
{
// Log the exception (consider using a logging framework)
ViewBag.Error = $"Error reading Excel file: {ex.Message}";
return View(new DataTable());
}
}Public Function Index() As ActionResult
Try
Dim filePath As String = "C:\Files\Customer Data.xlsx"
' Check if file exists before attempting to load
If Not System.IO.File.Exists(filePath) Then
ViewBag.Error = "Excel file not found at specified location."
Return View(New DataTable())
End If
' Load workbook with error handling
Dim workBook As WorkBook = WorkBook.Load(filePath)
' Verify worksheet exists
If workBook.WorkSheets.Count = 0 Then
ViewBag.Error = "No worksheets found in the Excel file."
Return View(New DataTable())
End If
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim dataTable = workSheet.ToDataTable(True)
Return View(dataTable)
Catch ex As Exception
' Log the exception (consider using a logging framework)
ViewBag.Error = $"Error reading Excel file: {ex.Message}"
Return View(New DataTable())
End Try
End FunctionJak mogę wybrać różne arkusze?
IronXL oferuje wiele sposobów na wybór i pracę z określonymi arkuszami kalkulacyjnymi. Możesz uzyskać dostęp do arkuszy poprzez indeks, nazwę lub iterować przez wszystkie dostępne arkusze:
// Method 1: Select by worksheet name
WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data");
// Method 2: Select by index (zero-based)
WorkSheet secondSheet = workBook.WorkSheets[1];
// Method 3: Select the default/active worksheet
WorkSheet defaultSheet = workBook.DefaultWorkSheet;
// Method 4: Iterate through all worksheets
foreach (WorkSheet sheet in workBook.WorkSheets)
{
string sheetName = sheet.Name;
// Process each worksheet
}' Method 1: Select by worksheet name
Dim namedSheet As WorkSheet = workBook.GetWorkSheet("Sales Data")
' Method 2: Select by index (zero-based)
Dim secondSheet As WorkSheet = workBook.WorkSheets(1)
' Method 3: Select the default/active worksheet
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet
' Method 4: Iterate through all worksheets
For Each sheet As WorkSheet In workBook.WorkSheets
Dim sheetName As String = sheet.Name
' Process each worksheet
NextJak wyświetlić dane Excel na stronie internetowej?
Jaki kod widoku jest potrzebny?
Następny przykład pokazuje, jak wyświetlić DataTable zwrócone w poprzednim przykładzie w przeglądarce internetowej.
Plik Excel używany w tym przykładzie jest pokazany poniżej:

Plik Excel
Otwórz widok index.cshtml (widok indeksu) i zamień kod na poniższy kod HTML:
@{
ViewData["Title"] = "Home Page";
}
@using System.Data
@model DataTable
<div class="text-center">
<h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
@* Check for errors first *@
@if (ViewBag.Error != null)
{
<div class="alert alert-danger">
@ViewBag.Error
</div>
}
@* Display table only if data exists *@
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}
else
{
<p>No data to display.</p>
}
Dlaczego używać Bootstrap do stylizacji tabel?
Powyższy kod używa zwróconego z metody DataTable jako modelu. Każdy wiersz z tabeli jest drukowany na stronie internetowej za pomocą pętli @for, w tym formatowania Bootstrap dla dekoracji.
Bootstrap zapewnia responsywne projekty tabel, które automatycznie dostosowują się do różnych rozmiarów ekranu — kluczowe dla nowoczesnych aplikacji webowych. Klasa table-dark tworzy atrakcyjną tabelę o ciemnym motywie, która jest łatwa do odczytania. Dla bardziej zaawansowanego formatowania Excela, takiego jak obramowania komórek i wyrównanie lub wzory i kolory tła, IronXL zapewnia dodatkowe metody dostępu do danych ustrukturyzowanych bezpośrednio.
Jak wygląda efekt końcowy?
Uruchomienie projektu generuje wyniki pokazane poniżej:

Tabela Bootstrap
Jak mogę dodać nagłówki do tabeli?
Aby wyświetlić nagłówki kolumn z pliku Excel, zmodyfikuj kod widoku, aby zawierał sekcję nagłówków tabeli. Podczas wywoływania ToDataTable(true), IronXL automatycznie używa pierwszego wiersza jako nazw kolumn:
@if (Model != null && Model.Rows.Count > 0)
{
<table class="table table-dark">
<thead>
<tr>
@foreach (DataColumn column in Model.Columns)
{
<th>@column.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@for (int i = 0; i < Model.Columns.Count; i++)
{
<td>@row[i]</td>
}
</tr>
}
</tbody>
</table>
}netTo udoskonalenie wyświetla poprawne nagłówki kolumn, takie jak "Nazwa klienta", "Koszt wysyłki" i "Cena jednostkowa" z pliku Excel. Dla bardziej skomplikowanych scenariuszy dotyczących zakresów nazwanych lub tabel nazwanych, IronXL zapewnia dodatkowe metody dostępu do danych ustrukturyzowanych bezpośrednio.
Często Zadawane Pytania
Jak odczytać pliki Excel w ASP.NET MVC bez pakietu Microsoft Office?
IronXL pozwala na odczytywanie plików Excel bezpośrednio w C# bez żadnych zależności od Microsoft Office. Wystarczy zainstalować IronXL za pośrednictwem NuGet, a następnie użyć WorkBook.Load(), aby otworzyć plik Excel i przekonwertować go na DataTable za pomocą zaledwie jednej linii kodu: var dataTable = IronXL.WorkBook.Load('CustomerData.xlsx').DefaultWorkSheet.ToDataTable(true);
Jaki jest najszybszy sposób konwersji danych z Excela do DataTable w ASP.NET?
IronXL udostępnia metodę ToDataTable(), która natychmiast konwertuje arkusze kalkulacyjne Excel na obiekty System.Data.DataTable. Po załadowaniu skoroszytu za pomocą IronXL należy przejść do dowolnego arkusza i wywołać metodę ToDataTable(true), aby uwzględnić nagłówki. Konwersja ta wymaga zaledwie jednej linii kodu i działa płynnie z widokami ASP.NET MVC.
Którą wersję .NET należy używać do przetwarzania plików Excel w aplikacjach internetowych?
IronXL obsługuje .NET Framework 4.6.2+ i .NET Core 3.1+. W przypadku nowych projektów ASP.NET MVC zaleca się użycie .NET 6.0 lub nowszego, ponieważ oferuje on ulepszone zarządzanie pamięcią podczas przetwarzania dużych plików Excel za pomocą IronXL oraz lepszą obsługę async/await dla operacji na arkuszach kalkulacyjnych.
Który szablon projektu Visual Studio najlepiej sprawdza się w przypadku funkcji odczytu plików Excel?
Podczas tworzenia projektu wybierz szablon „ASP.NET Core Web App (Model-View-Controller)”. Ta struktura MVC doskonale uzupełnia funkcję konwersji DataTable w IronXL, umożliwiając ładowanie i przetwarzanie plików Excel w kontrolerach przy jednoczesnym przejrzystym wyświetlaniu danych w widokach.
Jak zainstalować bibliotekę do odczytu plików Excel w moim projekcie ASP.NET?
Zainstaluj IronXL za pomocą konsoli NuGet Package Manager, uruchamiając polecenie „Install-Package IronXL.Excel”. Po instalacji sprawdź, czy biblioteka została poprawnie dodana, sprawdzając zależności projektu i dodając „using IronXL;” do kontrolera — IntelliSense powinno natychmiast rozpoznać przestrzeń nazw.
Why choose DataTable format when using IronXL?
The `DataTable` format is ideal for ASP.NET MVC applications because it integrates seamlessly with Razor views, allows for straightforward iteration over data rows and columns without model mapping, and accommodates mixed data types efficiently.
What steps are required to install IronXL in an ASP.NET MVC project?
Installation involves adding IronXL via the NuGet Package Manager in Visual Studio. It requires opening the NuGet Package Manager Console and executing a specific command to add IronXL to the project's dependencies.
How do you handle errors when reading Excel files with IronXL?
IronXL supports robust error handling such as checking file existence before loading, catching exceptions during the workbook loading process, and managing missing worksheet scenarios. This ensures application stability even if Excel files are corrupted or absent.
Can IronXL select specific worksheets from an Excel file?
Yes, IronXL allows developers to select worksheets by name, index, or default setting, and it also provides functionality to iterate through all available worksheets in a workbook.
What are some styling options for displaying Excel data using IronXL in web apps?
IronXL, when used with ASP.NET MVC, enables styling options like Bootstrap for responsive table layouts and additional IronXL methods for setting cell borders, alignment, patterns, and colors within spreadsheets.

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.