
Jak otworzyć plik Excel w ASP .NET Core
W tym samouczku pokażemy, jak otworzyć plik Excel za pomocą IronXL w aplikacji ASP.NET Core przy użyciu biblioteki IronXL. Obejmuje on podstawowe kroki odczytu plików Excel, a następnie wyświetlania danych z nich oraz zapisywania zmodyfikowanych danych z powrotem do pliku.
Czym jest IronXL?
Biblioteka IronXL dla .NET dla programu Excel, która zapewnia funkcjonalność do pracy z dokumentami Excel bez konieczności korzystania z programu Microsoft Excel lub interfejsu Office Interop. Obsługuje zarówno .NET Framework, jak i .NET Core, zapewniając możliwość pisania, manipulowania i odczytywania plików Excel za pomocą zaledwie kilku linii kodu. Szczegółowy samouczek dotyczący odczytu plików Excel można znaleźć w tym samouczku dotyczącym programu Excel.
Biblioteka IronXL może odczytywać i zapisywać dokumenty Excel, wyodrębniać z nich dane, przetwarzać je, a nawet tworzyć nowe pliki Excel od podstaw. IronXL obsługuje nie tylko format .XLS, ale jest również kompatybilny z formatem .XLSX, który jest formatem plików opartym na XML, opracowanym przez firmę Microsoft do przedstawiania arkuszy kalkulacyjnych.
Wymagania wstępne
Przed zanurzeniem się w kod, upewnij się, że masz następujące:
- Zainstalowany .NET Core 3.1 lub nowszy.
- Odpowiednie środowisko IDE do programowania w .NET (zalecane jest Microsoft Visual Studio).
- Podstawowa znajomość ASP.NET Core i Razor Pages.
Utwórz nowy projekt .NET Core
- Otwórz program Microsoft Visual Studio i wybierz opcję "Utwórz nowy projekt".
- Wybierz "ASP.NET Core Web App" z listy szablonów projektów i kliknij "Dalej".
- Nadaj nazwę projektowi, na przykład "Open_Excel_File_.NET_Core", wybierz lokalizację i kliknij "Dalej".
- Wybierz ".NET Core" jako docelowy framework i "ASP.NET Core 3.1 lub nowszy" jako wersję. W sekcji "Szablon projektu" wybierz "Aplikacja internetowa" i kliknij "Utwórz".
Zainstaluj pakiet IronXL
Kolejnym krokiem jest zainstalowanie pakietu IronXL w tym nowo utworzonym projekcie:
- Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz opcję "Zarządzaj pakietami NuGet".
- W zakładce "Przeglądaj" wyszukaj "IronXL" i kliknij "Zainstaluj" dla pakietu IronXL.Excel.
Wyszukaj i zainstaluj pakiet IronXL w interfejsie użytkownika NuGet Package Manager
- Poczekaj, aż pakiet zostanie zainstalowany.
Twój projekt ASP.NET Core jest już skonfigurowany, a biblioteka IronXL jest zainstalowana i gotowa do użycia.
Utwórz stronę Razor
Teraz stwórzmy stronę Razor, aby napisać kod otwierający plik Excel.
- Kliknij prawym przyciskiem myszy folder "Pages" w Eksploratorze rozwiązań i wybierz "Dodaj" > "Strona Razor".
- Wpisz "ExcelOpener" jako nazwę strony i kliknij "Dodaj".
Utwórz nową stronę Razor
Spowoduje to utworzenie dwóch plików: ExcelOpener.cshtml i ExcelOpener.cshtml.cs.
Plik ExcelOpener.cshtml zawiera znaczniki HTML dla strony, a plik ExcelOpener.cshtml.cs zawiera kod C# dla tej strony.
Odczytywanie plików Excel
Przejdźmy do kodu. Podana klasa ExcelOpenerModel jest modelem strony Razor Page. Ta klasa posiada właściwość List<List<string>> Data, która będzie używana do przechowywania danych odczytanych z pliku Excel.
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}Public Property Data() As List(Of List(Of String))
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
Data = New List(Of List(Of String))()
End SubW metodzie OnGet używane jest IronXL do załadowania pliku Excel i odczytania danych z domyślnego arkusza (pierwszego arkusza w zeszycie). Każdy wiersz reprezentowany jest jako List<string>, a wszystkie te listy są następnie dodawane do właściwości Data.
public void OnGet()
{
try
{
Data = new List<List<string>>();
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End SubWyjaśnienie kluczowych metod
WorkBook.Load(filepath): Ta metoda ładuje dokument Excel z określonej ścieżki pliku. Pomocne jest załadowanie i zapoznanie się z arkuszem Excel.workbook.DefaultWorkSheet: Ta właściwość uzyskuje domyślny (pierwszy) arkusz w skoroszycie Excel.sheet.GetCellAt(i, j).Value.ToString(): Ten element uzyskuje komórkę w określonych indeksach wiersza i kolumny oraz konwertuje jej wartość na string. Oto przykład metody indeksowej, która umożliwia dostęp do określonych komórek lub zakresów w pliku Excel na podstawie indeksów wierszy i kolumn.
Krótkie wyjaśnienie
W pliku ExcelOpener.cshtml.cs klasa nazwana ExcelOpenerModel reprezentuje model strony Razor Page. Zawiera właściwość nazwaną Data typu List<List<string>>, która będzie przechowywać dane z pliku Excel.
Metoda OnGet jest wywoływana, gdy żądana jest strona i jest odpowiedzialna za odczytywanie danych z pliku Excel. Używa IronXL do załadowania pliku Excel, wybiera domyślny arkusz i iteruje po wierszach i kolumnach, aby wypełnić właściwość Data.
Tworzenie plików Excel
Metoda OnPost w klasie ExcelOpenerModel służy do zapisywania modyfikacji w pliku Excel. Najpierw ładuje plik Excel i pobiera domyślny arkusz. Następnie zapisuje wartości z Data do komórek w arkuszu i zapisuje skoroszyt do nowego pliku.
public void OnPost()
{
try
{
// Load your Excel file
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
// Select your Worksheet
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data[i].Count; j++)
{
sheet.SetCellValue(i, j, Data[i][j]);
}
}
// Save the Excel file
var filename = @"C:\ModifiedData.xlsx";
workbook.SaveAs(filename);
}
catch (Exception ex)
{
// Handle exceptions here
Console.WriteLine(ex.Message);
}
}Public Sub OnPost()
Try
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data(i).Count
sheet.SetCellValue(i, j, Data(i)(j))
j += 1
Loop
Next i
' Save the Excel file
Dim filename = "C:\ModifiedData.xlsx"
workbook.SaveAs(filename)
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End SubWyjaśnienie kluczowych metod
sheet.SetCellValue(i, j, Data[i][j]): Ta metoda ustawia wartość komórki w określonych indeksach wiersza i kolumny.workbook.SaveAs(filepath): Ta metoda zapisuje skoroszyt Excel do określonej ścieżki pliku.
Krótkie wyjaśnienie
Metoda OnPost jest wywoływana, gdy formularz zostanie wysłany, i zapisuje zmodyfikowane dane z powrotem do pliku Excel. Ładuje plik Excel, wybiera domyślny arkusz i aktualizuje wartości komórek na podstawie zmodyfikowanych danych otrzymanych z formularza.
Formularz HTML do edycji danych programu Excel
W pliku ExcelOpener.cshtml zdefiniowano formularz służący do wyświetlania i edycji danych z pliku Excel. Każda wartość komórki jest wyświetlana w polu wprowadzania tekstu. Po edycji, kliknięcie przycisku "Zapisz" spowoduje przesłanie formularza, wywołanie metody OnPost i zapisanie zmian w pliku Excel.
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
<!-- Bootstrap classes for tables -->
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data[i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
Przejście do strony
W pliku _Layout.cshtml do menu nawigacyjnego dodano link do tej strony. Klikając ten link, przejdziesz do strony otwierającej plik Excel.
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
Uruchamianie aplikacji i wyjaśnianie wyników
Zbuduj aplikację, klikając przycisk "Buduj" w Visual Studio lub używając skrótu Ctrl + Shift + B. Uruchom aplikację, naciskając klawisz F5 lub klikając przycisk "Start" w programie Visual Studio.
Po uruchomieniu aplikacji przejdź do strony "ExcelOpener", klikając odpowiedni link na pasku nawigacyjnym. Strona wyświetli dane z Excela w formacie tabelarycznym.
Możesz zmodyfikować dane w tabeli i kliknąć przycisk "Zapisz", aby zapisać zmiany z powrotem w pliku Excel.
Wyświetlanie danych z Excela w aplikacji internetowej
W tym samouczku pokazano, jak otworzyć plik Excel za pomocą IronXL w aplikacji ASP.NET Core. IronXL zapewnia prosty i wygodny sposób odczytu i edycji plików Excel. Więcej informacji na temat zaawansowanych funkcji i możliwości można znaleźć w dokumentacji IronXL.
IronXL oferuje bezpłatną wersję próbną, która pozwala ocenić jego możliwości. Jeśli uznasz to za przydatne w swoich projektach, możesz zakupić licencję, zaczynając 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



