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 for .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
Zanim zagłębisz się w kod, upewnij się, że masz:
- 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_ExcelFile.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. Ta klasa posiada właściwość List<List<string>> Data, która będzie służyć do przechowywania danych odczytanych z pliku Excel.
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}
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 Sub
W metodzie OnGet używa się IronXL do wczytania pliku Excel i odczytania danych z domyślnego arkusza (pierwszego arkusza w skoroszycie). Każdy wiersz jest reprezentowany 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 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 Sub
Wyjaśnienie kluczowych metod
WorkBook.Load(filepath): Ta metoda ładuje dokument Excel z podanej ścieżki pliku. Pomocne jest załadowanie i zapoznanie się z arkuszem Excel.workbook.DefaultWorkSheet: Ta właściwość pobiera domyślny (pierwszy) arkusz w arkuszu kalkulacyjnym Excel.sheet.GetCellAt(i, j).Value.ToString(): Pobiera komórkę o podanych indeksach wiersza i kolumny i konwertuje jej wartość na ciąg znaków. 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 o nazwie ExcelOpenerModel reprezentuje model Razor Page. Zawiera właściwość o nazwie Data typu List<List<string>>, która będzie przechowywać dane z pliku Excel.
Metoda OnGet jest wywoływana po zażądaniu strony i odpowiada za odczyt danych z pliku Excel. Wykorzystuje bibliotekę 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 zmian 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 w nowym 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 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 Sub
Wyjaśnienie kluczowych metod
sheet.SetCellValue(i, j, Data[i][j]): Ta metoda ustawia wartość komórki o podanych indeksach wiersza i kolumny.workbook.SaveAs(filepath): Ta metoda zapisuje skoroszyt programu Excel w określonej ścieżce pliku.
Krótkie wyjaśnienie
Metoda OnPost jest wywoływana po przesłaniu formularza 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, uruchomienie 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">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</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>
<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
Skompiluj aplikację, klikając przycisk "Build" 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 nabyć licencję już od $799.
Często Zadawane Pytania
Jak otworzyć plik Excel w aplikacji .NET Core?
Plik Excel można otworzyć w aplikacji ASP.NET Core za pomocą biblioteki IronXL. Najpierw zainstaluj pakiet IronXL za pośrednictwem NuGet, a następnie użyj metody WorkBook.Load, aby załadować plik Excel. Dostęp do danych można uzyskać, wybierając arkusz i iterując po wierszach i kolumnach.
Jakie są zalety korzystania z IronXL zamiast Office Interop do obsługi arkuszy kalkulacyjnych Excel?
IronXL pozwala na pracę z plikami Excel bez konieczności korzystania z Microsoft Excel lub Office Interop, co czyni go idealnym rozwiązaniem dla środowisk serwerowych, w których instalacja pakietu Microsoft Office nie jest możliwa. Obsługuje zarówno .NET Framework, jak i .NET Core oraz formaty .XLS i .XLSX.
Jak wyświetlić dane z Excela w aplikacji internetowej przy użyciu Razor Pages?
Aby wyświetlić dane z Excela w aplikacji internetowej, można utworzyć stronę Razor Page, która wykorzystuje IronXL do ładowania i odczytu danych z Excela. Należy użyć formularza HTML do renderowania danych z każdej komórki do pól wprowadzania tekstu, umożliwiając użytkownikom przeglądanie i edycję danych w interfejsie internetowym.
Co jest potrzebne do skonfigurowania projektu ASP.NET Core do obsługi programu Excel?
Aby skonfigurować projekt ASP.NET Core do obsługi operacji w programie Excel, potrzebujesz platformy .NET Core 3.1 lub nowszej, środowiska IDE, takiego jak Microsoft Visual Studio, oraz podstawowej wiedzy na temat ASP.NET Core i Razor Pages. Zainstaluj pakiet IronXL z NuGet, aby rozpocząć pracę z plikami Excel.
Jak edytować i zapisać zmiany w pliku Excel w ASP.NET Core?
Możesz edytować i zapisywać zmiany w pliku Excel, umożliwiając użytkownikom modyfikowanie danych za pomocą formularza HTML na stronie Razor. Użyj metod IronXL, takich jak sheet.SetCellValue, aby zaktualizować dane, oraz workbook.SaveAs, aby zapisać zmodyfikowany plik Excel.
Jakie kroki należy wykonać, aby skonfigurować stronę Razor do obsługi plików Excel?
Konfiguracja strony Razor polega na utworzeniu nowej strony Razor w projekcie .NET Core. Użyj strony Razor do załadowania danych z Excela za pomocą IronXL, wyświetlenia ich w formularzu internetowym oraz obsługi przesłanych formularzy w celu aktualizacji i zapisania zmian z powrotem w pliku Excel.
Jak rozwiązać problem, jeśli mój plik Excel nie ładuje się w ASP.NET Core?
Jeśli plik Excel nie ładuje się, upewnij się, że ścieżka do pliku jest poprawna i dostępna dla aplikacji. Sprawdź, czy IronXL jest poprawnie zainstalowany i czy format pliku jest obsługiwany. Sprawdź, czy nie ma żadnych wyjątków lub komunikatów o błędach, które mogłyby wskazywać na przyczynę problemu.
Czy mogę wypróbować bibliotekę IronXL przed zakupem?
Tak, IronXL oferuje bezpłatną wersję próbną, która pozwala ocenić jego możliwości. Możesz skorzystać z tej wersji próbnej, aby upewnić się, że spełnia ona Twoje potrzeby, zanim zdecydujesz się na zakup licencji.




