Jak eksportować do CSV w Blazor
Dzisiaj przyjrzymy się, jak używać Blazora i IronXL do konwersji pliku Excel do formatu CSV. Po zakończeniu tego samouczka będziesz w stanie stworzyć podstawową aplikację Blazor, która eksportuje dane z Excela w różnych formatach, w tym CSV.
Wprowadzenie do IronXL
IronXL to potężna biblioteka .NET dla programu Excel, zaprojektowana do pracy z plikami Excel w szerokiej gamie formatów, w tym XLS, XLSX, XLSM, XLTX i CSV. Pozwala programistom na odczytywanie, zapisywanie i manipulowanie danymi programu Excel programowo, bez konieczności korzystania z pakietu Microsoft Office lub interfejsu Excel Interop.
Dzięki IronXL można tworzyć, wczytywać i zapisywać skoroszyty Excel, a także odczytywać i zapisywać dane w poszczególnych komórkach lub zakresach. Obsługuje również zaawansowane funkcje, takie jak formatowanie, formuły, wykresy i tabele przestawne. IronXL jest kompatybilny z różnymi platformami .NET Framework i może być używany z popularnymi językami, takimi jak C# i VB.NET.
Kroki konwersji pliku Excel do formatu CSV
Konfiguracja projektu Blazor
Aby rozpocząć, należy utworzyć nowy projekt Blazor Server. Otwórz program Visual Studio, utwórz nowy projekt i wybierz szablon "Blazor Server App". Nadaj nazwę projektowi i kliknij "Utwórz".
Po utworzeniu projektu otwórz folder Pages i znajdź plik Index.razor. To właśnie tam dodaje się i koduje komponenty Blazor w celu obsługi przesyłania i konwersji plików.
Instalacja IronXL
Przed rozpoczęciem pisania kodu konieczne jest zainstalowanie biblioteki IronXL. Otwórz konsolę menedżera pakietów w Visual Studio i uruchom następujące polecenie:
Install-Package IronXl.Excel
To polecenie zainstaluje bibliotekę IronXL w Twoim projekcie Blazor. Teraz jesteś gotowy, aby zacząć pisać kod!
Tworzenie komponentu do przesyłania plików
Najpierw należy utworzyć podstawowy komponent do przesyłania plików, który umożliwi użytkownikom przesyłanie istniejących plików Excel. Następnie dodaje się komponent InputFile z przestrzeni nazw Microsoft.AspNetCore.Components.Forms. Dodaj poniższy kod do pliku Index.razor, poniżej linii "@page "":
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks
<div class="container">
<h3>File Upload</h3>
<InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
<h3>Selected File: @originalFileName</h3>
<h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>
Ten kod konfiguruje komponent przesyłania plików, wraz z przyciskiem i obszarem komunikatów służącym do wyświetlania statusu konwersji pliku. Atrybut accept w komponencie InputFile określa akceptowane formaty plików.
Pisanie kodu do konwersji plików
Teraz napiszmy kod obsługujący przesyłanie i konwersję plików. Do realizacji tego zadania zostanie wykorzystane połączenie IronXL, Blazor i C#. Możesz użyć IronXL do konwersji pliku CSV na plik Excel.
Dodaj poniższy kod do pliku Index.razor, poniżej elementu div, który dodałeś wcześniej.
@code {
private string originalFileName;
private string message = "";
private async Task OnInputFileChange(InputFileChangeEventArgs e)
{
var file = e.File;
originalFileName = file.Name;
try
{
// Read the uploaded file into a memory stream
using var memoryStream = new MemoryStream();
await file.OpenReadStream().CopyToAsync(memoryStream);
// Load the workbook using IronXL
WorkBook workBook = WorkBook.Load(memoryStream);
// Save the workbook as a CSV file
string outputPath = "sample.csv";
workBook.SaveAsCsv(outputPath);
message = "Conversion completed!";
}
catch (Exception ex)
{
message = $"An error occurred: {ex.Message}";
}
}
}
Ten kod definiuje metodę prywatną o nazwie OnInputFileChange, która zostanie wywołana po przesłaniu arkusza kalkulacyjnego Excel za pomocą komponentu InputFile; Pliki Excel mogą być w formacie XLS lub XLSX. Kod odczytuje przesłany plik Excel, ładuje go do obiektu WorkBook, a następnie zapisuje WorkBook jako plik CSV. Status konwersji jest wyświetlany w obszarze komunikatów na stronie.
Analiza kodu
Najpierw zapoznaj się z pełnym kodem:
@page "/"
@using Microsoft.AspNetCore.Components.Forms
@using IronXL
@using System.IO
@using System.Threading.Tasks
<style>
body{
background-color: skyblue
}
.container {
max-width: 800px;
margin: 0 auto;
font-family: Arial, sans-serif;
}
h3 {
margin-top: 30px;
font-size: 30px;
margin-bottom: 30px;
}
.button {
background-color: #4CAF50;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 15px 0;
cursor: pointer;
}
span {
font-size: 20px;
}
</style>
<div class="container">
<h3>File Upload</h3>
<InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" />
<h3>Selected File: @originalFileName</h3>
<h3 style="color:bisque">Is File converted: <span>@message</span></h3>
</div>
@code {
private string originalFileName;
private string message = "";
private async Task OnInputFileChange(InputFileChangeEventArgs e)
{
var file = e.File;
originalFileName = file.Name;
try
{
// Read the uploaded file into a memory stream
using var memoryStream = new MemoryStream();
await file.OpenReadStream().CopyToAsync(memoryStream);
// Load the workbook using IronXL
WorkBook workBook = WorkBook.Load(memoryStream);
// Save the workbook as a CSV file
string outputPath = "sample.csv";
workBook.SaveAsCsv(outputPath);
message = "Conversion completed!";
}
catch (Exception ex)
{
message = $"An error occurred: {ex.Message}";
}
}
}
Przeanalizujmy kod bardziej szczegółowo:
- Po przesłaniu pliku uruchamiana jest metoda
OnInputFileChange, do której przekazywany jest obiektInputFileChangeEventArgs. Ten obiekt zawiera informacje o przesłanym pliku, takie jak jego nazwa i rozmiar. - Zapisz oryginalną nazwę pliku w zmiennej o nazwie
originalFileName, aby wyświetlić ją na stronie. - W bloku try-catch utwórz nowy obiekt
MemoryStream, aby odczytać zawartość przesłanego pliku. Instrukcja using gwarantuje, że strumień pamięci zostanie prawidłowo usunięty, gdy nie będzie już potrzebny. - Użyj słowa kluczowego
await, aby asynchronicznie skopiować zawartość przesłanego pliku do strumienia pamięci. Dzięki temu aplikacja pozostaje responsywna podczas odczytywania pliku. - Następnie metoda
WorkBook.Loadsłuży do załadowania zawartości strumienia pamięci do obiektuWorkBook. Ten obiekt reprezentuje cały skoroszyt programu Excel, w tym jego arkusze, komórki i dane. - Następnie określ nazwę pliku wyjściowego dla przekonwertowanego pliku CSV. W tym przypadku używamy nazwy "sample.csv".
- Następnie używana jest metoda
SaveAsCsvobiektuWorkBookw celu zapisania skoroszytu jako pliku CSV o podanej nazwie pliku wyjściowego. - Jeśli konwersja przebiegnie pomyślnie, wyświetli się komunikat informujący o jej zakończeniu. W przypadku wystąpienia błędu należy przechwycić wyjątek i wyświetlić komunikat o błędzie.
Testowanie aplikacji
Teraz, gdy aplikacja Blazor jest gotowa, czas ją przetestować! Naciśnij klawisz F5, aby uruchomić aplikację w Visual Studio. Po uruchomieniu aplikacji na stronie powinien pojawić się przycisk przesyłania plików.
Uruchom aplikację Blazor
Kliknij przycisk i wybierz plik Excel do przesłania. Akceptowane formaty plików są wymienione w atrybucie accept komponentu InputFile.
Wybierz plik Excel
Po wybraniu pliku aplikacja odczyta go, przekonwertuje do formatu CSV za pomocą IronXL i zapisze przekonwertowany plik pod określoną nazwą pliku wyjściowego. Powinieneś zobaczyć komunikat wskazujący status konwersji, a także nazwę oryginalnego pliku.
Status konwersji
Gratulacje! Udało Ci się stworzyć aplikację Blazor, która może eksportować pliki Excel do formatu CSV przy użyciu IronXL. Poniższy zrzut ekranu przedstawia wynik działania powyższego programu.
Plik Excel z wynikami
Wnioski
W tym samouczku pokazano, jak zbudować aplikację Blazor, która może eksportować pliki Excel do formatu CSV przy użyciu IronXL. Pokazaliśmy, jak stworzyć komponent do przesyłania plików, obsługiwać przesyłanie plików oraz konwertować pliki Excel do formatu CSV, korzystając z zaawansowanych funkcji IronXL.
Włączając IronXL do swoich aplikacji Blazor, można z łatwością wykonywać różnorodne zadania związane z programem Excel, takie jak importowanie, przetwarzanie i eksportowanie danych. Otwiera to szeroki wachlarz możliwości dla Państwa projektów i pomaga zapewnić użytkownikom bogatsze doświadczenia. W Blazorze można konwertować pliki CSV do formatu Excel za pomocą biblioteki IronXL.
IronXL oferuje bezpłatną wersję próbną, która pozwala przetestować jego funkcje i możliwości przed podjęciem decyzji o zakupie. Po okresie próbnym ceny licencji na IronXL zaczynają się od $799.
Często Zadawane Pytania
Jak mogę przekonwertować plik Excel do formatu CSV w aplikacji Blazor?
W aplikacji Blazor można przekonwertować plik Excel do formatu CSV za pomocą IronXL. Najpierw należy skonfigurować projekt Blazor Server, zainstalować IronXL za pomocą konsoli Package Manager Console oraz utworzyć komponent do przesyłania plików za pomocą komponentu `InputFile`. Następnie należy wczytać plik Excel do strumienia pamięci, załadować go do obiektu WorkBook za pomocą IronXL i użyć metody SaveAsCsv, aby wyeksportować plik jako CSV.
Jaki jest cel stosowania IronXL w aplikacjach Blazor?
IronXL jest używany w aplikacjach Blazor do obsługi danych Excel bez konieczności korzystania z pakietu Microsoft Office lub Excel Interop. Pozwala programistom na odczytywanie, manipulowanie i eksportowanie danych Excel za pomocą kodu, umożliwiając takie funkcje jak importowanie danych, formatowanie oraz konwersja plików Excel do formatów takich jak CSV.
Czy mogę przetestować moją aplikację Blazor pod kątem konwersji plików Excel do formatu CSV?
Tak, możesz przetestować swoją aplikację Blazor, uruchamiając ją w Visual Studio. Użyj komponentu przesyłania plików, aby wybrać plik Excel. Aplikacja przekonwertuje wybrany plik do formatu CSV przy użyciu IronXL i wyświetli informacje o statusie konwersji.
Jakie są zalety korzystania z IronXL w porównaniu z Excel Interop?
Korzystanie z IronXL zamiast Excel Interop zapewnia kilka korzyści, w tym możliwość manipulowania plikami Excel bez konieczności instalowania pakietu Microsoft Office, obsługę wielu formatów Excel (XLS, XLSX, CSV) oraz kompatybilność z aplikacjami .NET, co zwiększa wydajność i ułatwia wdrażanie.
Jak zainstalować IronXL w moim projekcie Blazor?
Aby zainstalować IronXL w projekcie Blazor, otwórz konsolę menedżera pakietów w Visual Studio i uruchom polecenie: Install-Package IronXl.Excel. Spowoduje to zainstalowanie biblioteki IronXL, umożliwiając rozpoczęcie pracy z plikami Excel za pomocą kodu.
Jakie formaty plików Excel są obsługiwane przez IronXL do konwersji w Blazorze?
IronXL obsługuje wiele formatów plików Excel do konwersji w Blazorze, w tym .xls, .xlsx, .xlsm, .xltx i .csv, co pozwala na elastyczną obsługę danych Excel w aplikacjach.
Jak mogę utworzyć komponent do przesyłania plików w aplikacji Blazor?
Aby utworzyć komponent do przesyłania plików w aplikacji Blazor, należy użyć komponentu `InputFile` z przestrzeni nazw Microsoft.AspNetCore.Components.Forms. Komponent ten umożliwia użytkownikom przesyłanie plików, które następnie mogą być przetwarzane za pomocą IronXL w celu wykonania takich zadań, jak konwersja plików Excel do formatu CSV.
Czy dostępna jest bezpłatna wersja próbna IronXL?
Tak, IronXL oferuje bezpłatną wersję próbną, która pozwala zapoznać się z jego funkcjami i możliwościami przed dokonaniem zakupu. Po zakończeniu okresu próbnego można wybrać jedną z różnych opcji licencyjnych w zależności od potrzeb projektu.




