Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Buduj Excel API dla .NET Core: Twórz, czytaj i eksportuj pliki XLSX

Tworzenie interfejsu API programu Excel dla platformy .NET Core jest proste dzięki IronXL. Zainstaluj pakiet, utwórz WorkBook, wypełnij komórki i zwróć strumień bezpośrednio — nie jest wymagańy pakiet Microsoft Office.

Install-Package IronXl.Excel

IronXL obsługuje tworzenie plików XLSX, import danych, eksport do wielu formatów oraz stylizację komórek całkowicie w zarządzanym kodzie .NET. Działa na systemach Windows, Linux i macOS, co czyni go praktycznym wyborem dla każdego interfejsu API .NET Core, który wymaga programowej obsługi programu Excel.

Jak zainstalować IronXL w projekcie .NET Core?

Dodaj IronXL do dowolnego projektu .NET 10 za pomocą konsoli NuGet Package Manager:

Install-Package IronXl.Excel

Można też zainstalować przez interfejs użytkownika Visual Studio NuGet, wyszukując IronXL. Nazwa pakietu w serwisie NuGet to IronXl.Excel.

Po instalacji dodaj using IronXL; do każdego pliku, który tworzy lub odczytuje skoroszyty. Na komputerze hosta nie są wymagańe żadne biblioteki interoperacyjności Office, rejestracja COM ani instalacja programu Microsoft Excel — IronXL jest całkowicie samowystarczalny.

IronXL jest przeznaczony dla .NET Standard 2.0 i nowszych wersji, co oznacza, że ta sama biblioteka działa w projektach .NET Core, .NET 5/6/7/8/9/10 oraz .NET Framework. Dokumentacja IronXL szczegółowo opisuje wszystkie obsługiwane środowiska.

Jak programowo tworzyć pliki Excel w .NET Core?

Tworzenie dokumentów Excel od podstaw wymaga zaledwie kilku wierszy kodu dzięki intuicyjnemu API IronXL. Biblioteka zapewnia pełną kontrolę nad skoroszytami, arkuszami, stylami komórek i formułami dzięki przejrzystemu modelowi obiektowemu.

Oto akcja kontrolera, która tworzy nowy skoroszyt Excel z sformatowanymi danymi, demonstruje zarządzanie arkuszami i stosuje style komórek:

using IronXL;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class ExcelController : ControllerBase
{
    [HttpGet("create-report")]
    public IActionResult CreateSalesReport()
    {
        // Create a new Excel workbook in XLSX format
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");

        // Set header labels in the first row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Q1 Sales";
        worksheet["C1"].Value = "Q2 Sales";
        worksheet["D1"].Value = "Total";

        // Bold headers and apply a blue background with white text
        worksheet["A1:D1"].Style.Font.Bold = true;
        worksheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
        worksheet["A1:D1"].Style.Font.SetColor("#FFFFFF");

        // Add data rows
        worksheet["A2"].Value = "Widget Pro";
        worksheet["B2"].Value = 15000;
        worksheet["C2"].Value = 18500;
        worksheet["D2"].Formula = "=B2+C2";

        worksheet["A3"].Value = "Gadget Plus";
        worksheet["B3"].Value = 22000;
        worksheet["C3"].Value = 24000;
        worksheet["D3"].Formula = "=B3+C3";

        // Apply currency number format to sales columns
        worksheet["B2:D3"].Style.Format = "$#,##0";

        // Stream the XLSX file back to the caller
        var stream = workbook.ToStream();
        return File(
            stream,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "SalesReport.xlsx");
    }
}
using IronXL;
using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class ExcelController : ControllerBase
{
    [HttpGet("create-report")]
    public IActionResult CreateSalesReport()
    {
        // Create a new Excel workbook in XLSX format
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");

        // Set header labels in the first row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Q1 Sales";
        worksheet["C1"].Value = "Q2 Sales";
        worksheet["D1"].Value = "Total";

        // Bold headers and apply a blue background with white text
        worksheet["A1:D1"].Style.Font.Bold = true;
        worksheet["A1:D1"].Style.SetBackgroundColor("#4472C4");
        worksheet["A1:D1"].Style.Font.SetColor("#FFFFFF");

        // Add data rows
        worksheet["A2"].Value = "Widget Pro";
        worksheet["B2"].Value = 15000;
        worksheet["C2"].Value = 18500;
        worksheet["D2"].Formula = "=B2+C2";

        worksheet["A3"].Value = "Gadget Plus";
        worksheet["B3"].Value = 22000;
        worksheet["C3"].Value = 24000;
        worksheet["D3"].Formula = "=B3+C3";

        // Apply currency number format to sales columns
        worksheet["B2:D3"].Style.Format = "$#,##0";

        // Stream the XLSX file back to the caller
        var stream = workbook.ToStream();
        return File(
            stream,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "SalesReport.xlsx");
    }
}
Imports IronXL
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("api/[controller]")>
Public Class ExcelController
    Inherits ControllerBase

    <HttpGet("create-report")>
    Public Function CreateSalesReport() As IActionResult
        ' Create a new Excel workbook in XLSX format
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Sales Data")

        ' Set header labels in the first row
        worksheet("A1").Value = "Product"
        worksheet("B1").Value = "Q1 Sales"
        worksheet("C1").Value = "Q2 Sales"
        worksheet("D1").Value = "Total"

        ' Bold headers and apply a blue background with white text
        worksheet("A1:D1").Style.Font.Bold = True
        worksheet("A1:D1").Style.SetBackgroundColor("#4472C4")
        worksheet("A1:D1").Style.Font.SetColor("#FFFFFF")

        ' Add data rows
        worksheet("A2").Value = "Widget Pro"
        worksheet("B2").Value = 15000
        worksheet("C2").Value = 18500
        worksheet("D2").Formula = "=B2+C2"

        worksheet("A3").Value = "Gadget Plus"
        worksheet("B3").Value = 22000
        worksheet("C3").Value = 24000
        worksheet("D3").Formula = "=B3+C3"

        ' Apply currency number format to sales columns
        worksheet("B2:D3").Style.Format = "$#,##0"

        ' Stream the XLSX file back to the caller
        Dim stream = workbook.ToStream()
        Return File(
            stream,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "SalesReport.xlsx")
    End Function
End Class
$vbLabelText   $csharpLabel

Plik wyjściowy w formacie Excel

Tworzenie interfejsu API programu Excel dla platformy .NET Core: tworzenie, odczytywanie i eksportowanie plików XLSX: Obraz 1 — plik programu Excel wygenerowany przez interfejs API platformy .NET Core

WorkBook.Create() obsługuje zarówno formaty XLSX, jak i XLS. Metoda CreateWorkSheet() dodaje arkusz o określonej nazwie, w którym można wypełniać komórki wartościami, stosować formuły programu Excel do obliczeń oraz kontrolować układ za pomocą zakresów komórek. Silnik obliczeniowy IronXL automatycznie oblicza formuły w przypadku zmiany danych w skoroszycie, w tym obsługuje formuły tablicowe stosowane w bardziej złożonych scenariuszach analizy danych.

Style komórek to znacznie więcej niż tylko pogrubienie i kolor. API formatowania komórek pozwala ustawić formaty liczb, obramowania, wyrównanie, rozmiary czcionek i wiele więcej — wszystko to bez ingerencji w warstwę COM. Dzięki temu można je bezpiecznie uruchamiać w kontenerowych środowiskach Linux, gdzie nie ma kontekstu wyświetlania.

Jak dodać wiele arkuszy do skoroszytu?

Jeden skoroszyt może zawierać dowolną liczbę arkuszy. W przypadku każdej potrzebnej zakładki należy użyć workbook.CreateWorkSheet("SheetName"). Arkusze są dostępne później według nazwy poprzez workbook.GetWorkSheet("SheetName") lub według indeksu poprzez workbook.WorkSheets[0].

Ten wzorzec jest przydatny podczas generowania raportów zawierających podsumowanie oraz szczegóły: jeden arkusz zawiera zagregowane sumy, a arkusze podrzędne zawierają surowe wiersze transakcji. Dokumentacja dotycząca zarządzania arkuszami zawiera instrukcje dotyczące zmiany nazw, zmiany kolejności i usuwania arkuszy w czasie wykonywania.

Jaki jest najlepszy sposób odczytu danych z Excela w interfejsach API sieci Web?

Importowanie danych z plików Excel przesłanych przez użytkowników jest niezbędne dla każdej aplikacji internetowej przetwarzającej zawartość arkuszy kalkulacyjnych. IronXL ułatwia bezpośrednie odczytywanie arkuszy kalkulacyjnych Excel — ładuj ze strumienia, iteruj wiersze i pobieraj wpisane wartości z każdej komórki.

[HttpPost("import")]
public IActionResult ImportExcelData(IFormFile file)
{
    if (file == null || file.Length == 0)
        return BadRequest("No file uploaded");

    using var stream = file.OpenReadStream();

    // Load the workbook directly from the upload stream
    WorkBook workbook = WorkBook.Load(stream);
    WorkSheet worksheet = workbook.DefaultWorkSheet;

    var records = new List<Dictionary<string, object>>();

    // Start at row 2 to skip the header row
    for (int row = 2; row <= worksheet.RowCount; row++)
    {
        var record = new Dictionary<string, object>
        {
            ["Product"] = worksheet[$"A{row}"].StringValue,
            ["Sales"]   = worksheet[$"B{row}"].DecimalValue,
            ["Date"]    = worksheet[$"C{row}"].DateTimeValue
        };
        records.Add(record);
    }

    return Ok(new {
        message     = "Import successful",
        recordCount = records.Count,
        data        = records
    });
}
[HttpPost("import")]
public IActionResult ImportExcelData(IFormFile file)
{
    if (file == null || file.Length == 0)
        return BadRequest("No file uploaded");

    using var stream = file.OpenReadStream();

    // Load the workbook directly from the upload stream
    WorkBook workbook = WorkBook.Load(stream);
    WorkSheet worksheet = workbook.DefaultWorkSheet;

    var records = new List<Dictionary<string, object>>();

    // Start at row 2 to skip the header row
    for (int row = 2; row <= worksheet.RowCount; row++)
    {
        var record = new Dictionary<string, object>
        {
            ["Product"] = worksheet[$"A{row}"].StringValue,
            ["Sales"]   = worksheet[$"B{row}"].DecimalValue,
            ["Date"]    = worksheet[$"C{row}"].DateTimeValue
        };
        records.Add(record);
    }

    return Ok(new {
        message     = "Import successful",
        recordCount = records.Count,
        data        = records
    });
}
Imports Microsoft.AspNetCore.Mvc
Imports System.Collections.Generic
Imports IronXL

<HttpPost("import")>
Public Function ImportExcelData(file As IFormFile) As IActionResult
    If file Is Nothing OrElse file.Length = 0 Then
        Return BadRequest("No file uploaded")
    End If

    Using stream = file.OpenReadStream()
        ' Load the workbook directly from the upload stream
        Dim workbook As WorkBook = WorkBook.Load(stream)
        Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

        Dim records As New List(Of Dictionary(Of String, Object))()

        ' Start at row 2 to skip the header row
        For row As Integer = 2 To worksheet.RowCount
            Dim record As New Dictionary(Of String, Object) From {
                {"Product", worksheet($"A{row}").StringValue},
                {"Sales", worksheet($"B{row}").DecimalValue},
                {"Date", worksheet($"C{row}").DateTimeValue}
            }
            records.Add(record)
        Next

        Return Ok(New With {
            .message = "Import successful",
            .recordCount = records.Count,
            .data = records
        })
    End Using
End Function
$vbLabelText   $csharpLabel

Wynik

Tworzenie interfejsu API programu Excel dla platformy .NET Core: tworzenie, odczytywanie i eksportowanie plików XLSX: Ilustracja 2 — Wynik pokazujący pomyślnie zaimportowane dane programu Excel

WorkBook.Load() otwiera pliki Excel ze strumieni, ścieżek plików lub tablic bajtów. Dostęp do komórek uzyskuje się poprzez składnię indeksatora worksheet["A1"] lub poprzez iterację nad nazwanym zakresem komórek. IronXL automatycznie obsługuje walidację danych i udostępnia bezpieczne typowo akcesory -- IntValue, DecimalValue, DateTimeValue, StringValue -- dzięki czemu kod użytkownika pozostaje przejrzysty i przewidywalny.

Jak filtrować i sortować zaimportowane dane?

Po załadowaniu skoroszytu wywołaj .SortAscending() lub .SortDescending() na dowolnym obiekcie Range, aby posortować wiersze. W celu filtrowania należy iterować komórki i oceniać warunki w linii lub przenieść dane do kolekcji LINQ w celu dalszego przetwarzania. Przewodnik dotyczący sortowania i filtrowania przedstawia oba podejścia wraz z praktycznymi przykładami.

Pracujesz z dużymi plikami? IronXL odczytuje tylko te komórki, do których ma dostęp, więc nie ma potrzeby ładowania całego pliku o wielkości kilku megabajtów do pamięci przed wysłaniem zapytania do konkretnej kolumny. To podejście oparte na leniwym dostępie pozwala utrzymać stabilne zużycie pamięci nawet podczas przetwarzania skoroszytów zawierających dziesiątki tysięcy wierszy.

Jak można eksportować dane z Excela do różnych formatów?

Aplikacje często muszą oferować arkusze kalkulacyjne w wielu formatach wyjściowych. IronXL obsługuje eksport do formatów XLSX, XLS, CSV, JSON i HTML za pomocą jednego wywołania metody, bez konieczności stosowania zewnętrznych narzędzi do konwersji.

[HttpGet("export/{format}")]
public IActionResult ExportData(string format)
{
    // Load a pre-designed template workbook
    WorkBook workbook = WorkBook.Load("template.xlsx");

    return format.ToLower() switch
    {
        "xlsx" => File(
            workbook.ToStream(),
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "export.xlsx"),

        "csv"  => File(
            workbook.ToStream(FileFormat.CSV),
            "text/csv",
            "export.csv"),

        "json" => Ok(workbook.ToJson()),

        _      => BadRequest("Unsupported format")
    };
}
[HttpGet("export/{format}")]
public IActionResult ExportData(string format)
{
    // Load a pre-designed template workbook
    WorkBook workbook = WorkBook.Load("template.xlsx");

    return format.ToLower() switch
    {
        "xlsx" => File(
            workbook.ToStream(),
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "export.xlsx"),

        "csv"  => File(
            workbook.ToStream(FileFormat.CSV),
            "text/csv",
            "export.csv"),

        "json" => Ok(workbook.ToJson()),

        _      => BadRequest("Unsupported format")
    };
}
Imports Microsoft.AspNetCore.Mvc

<HttpGet("export/{format}")>
Public Function ExportData(format As String) As IActionResult
    ' Load a pre-designed template workbook
    Dim workbook As WorkBook = WorkBook.Load("template.xlsx")

    Select Case format.ToLower()
        Case "xlsx"
            Return File(workbook.ToStream(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "export.xlsx")
        Case "csv"
            Return File(workbook.ToStream(FileFormat.CSV), "text/csv", "export.csv")
        Case "json"
            Return Ok(workbook.ToJson())
        Case Else
            Return BadRequest("Unsupported format")
    End Select
End Function
$vbLabelText   $csharpLabel

Korzystanie z szablonów Excel o predefiniowanych układach przyspiesza generowanie raportów. Załaduj gotowy skoroszyt, wprowadź dane dynamiczne do nazwanych komórek lub zakresów, a następnie wyślij wynik. Takie podejście sprawdza się w przypadku raportów sprzedaży, faktur i dokumentów dotyczących zgodności, gdzie spójne formatowanie ma większe znaczenie niż elastyczność.

Wsparcie wielopłatformowe IronXL oznacza, że operacje na plikach działają identycznie w systemach Windows, Linux i macOS, dzięki czemu narzędzie nadaje się do wdrożeń kontenerowych .NET Core. Więcej informacji można znaleźć w przewodniku dotyczącym platformy IronXL.

Jak wyeksportować dane do pliku CSV z interfejsu API .NET Core?

Wywołaj workbook.ToStream(FileFormat.CSV) i zwróć wynik z typem zawartości text/csv, jak pokazano powyżej. W przypadku skoroszytów wielarkuszowych każdy arkusz można wyeksportować niezależnie, uzyskując dostęp do workbook.WorkSheets[index] i wywołując .ToStream(FileFormat.CSV) na obiekcie arkusza. Dokumentacja dotycząca eksportu do plików CSV obejmuje obsługę separatorów, kodowanie oraz opcje formatowania daty.

Jak zastosować formatowanie warunkówe i paski danych?

Oprócz podstawowych stylów komórek, IronXL obsługuje reguły formatowania warunkówego — podświetlanie komórek powyżej progu na zielono, oznaczanie wartości ujemnych na czerwono lub stosowanie pasków danych z gradientem, aby trendy były natychmiast widoczne w arkuszu kalkulacyjnym bez konieczności przetwarzania w oddzielnym narzędziu.

Formatowanie warunkówe jest szczególnie przydatne w pulpitach finansowych i raportach KPI, gdzie czytelnicy muszą szybko dostrzegać wartości odstające. Zamiast polegać na tym, że odbiorca sam zastosuje formatowanie po pobraniu, reguły są osadzone w pliku XLSX i są oceniane automatycznie po otwarciu pliku w dowolnej wersji programu Microsoft Excel lub kompatybilnej przeglądarce.

Formatowanie warunkówe ustawia się za pomocą właściwości ConditionalFormatting arkusza. Reguły są stosowane do określonego zakresu komórek i obsługują wiele typów warunków: porównania wartości komórek, reguły oparte na formułach, skale kolorów oceniające wartości od niskich do wysokich oraz nakładki pasków danych, które działają jak wykresy słupkowe w komórkach. Specyfikacja Open XML definiuje podstawową strukturę reguł, którą IronXL zapisuje w pliku XLSX.

Pełne informacje na temat stosowania skal kolorów, zestawów ikon i pasków danych można znaleźć w samouczku dotyczącym formatowania warunkówego w dokumentacji IronXL.

Jak chronić pliki i arkusze programu Excel?

Dystrybucja raportów zawierających dane wrażliwe wymaga warstwy kontroli dostępu. IronXL obsługuje zarówno ochronę hasłem na poziomie skoroszytu, jak i na poziomie arkusza:

  • Hasło skoroszytu: Ustaw workbook.Password = "secret" przed wywołaniem .SaveAs(), aby zaszyfrować plik XLSX. Odbiorcy muszą wprowadzić hasło, aby otworzyć go w programie Excel.
  • Ochrona arkusza: Wywołaj worksheet.ProtectSheet("password"), aby zablokować edycję komórek, jednocześnie umożliwiając przeglądanie arkusza. Konkretne zakresy można odblokować do wprowadzania danych za pomocą interfejsu API AllowEditRange.
  • Dystrybucja tylko do odczytu: w przypadku dokumentów, które nie powinny być nigdy edytowane, należy połączyć zabezpieczenie arkusza z szyfrowaniem na poziomie pliku.

Pliki XLSX chronione hasłem domyślnie wykorzystują szyfrowanie AES-128, ten sam standard, który stosuje natywny program Excel. Oznacza to, że plik zabezpieczony za pomocą IronXL jest w pełni kompatybilny z wbudowanym w Excel okienkiem wyboru pliku — odbiorca nie potrzebuje żadnej specjalnej przeglądarki.

Te funkcje bezpieczeństwa uzupełniają standardowy model bezpieczeństwa .NET Core i są szczególnie przydatne podczas tworzenia punktów końcowych do raportowania finansowego lub kadrowego. Dokumentacja dotycząca ochrony plików zawiera pełny opis API.

Jak pracować z formułami programu Excel w środowisku .NET?

Wbudowany silnik obliczeniowy IronXL ocenia standardowe formuły Excela w czasie wykonywania, dzięki czemu API może zwracać obliczone wartości bez konieczności zapisywania ich na dysku i ponownego otwierania w Excelu. Przypisz ciąg formuły do właściwości .Formula dowolnej komórki:

// Sum a column and place the result in a footer row
worksheet[$"B{lastRow}"].Formula = $"=SUM(B2:B{lastRow - 1})";

// Calculate an average across a range
worksheet[$"C{lastRow}"].Formula = $"=AVERAGE(C2:C{lastRow - 1})";

// Retrieve the computed value immediately
decimal total = worksheet[$"B{lastRow}"].DecimalValue;
// Sum a column and place the result in a footer row
worksheet[$"B{lastRow}"].Formula = $"=SUM(B2:B{lastRow - 1})";

// Calculate an average across a range
worksheet[$"C{lastRow}"].Formula = $"=AVERAGE(C2:C{lastRow - 1})";

// Retrieve the computed value immediately
decimal total = worksheet[$"B{lastRow}"].DecimalValue;
' Sum a column and place the result in a footer row
worksheet($"B{lastRow}").Formula = $"=SUM(B2:B{lastRow - 1})"

' Calculate an average across a range
worksheet($"C{lastRow}").Formula = $"=AVERAGE(C2:C{lastRow - 1})"

' Retrieve the computed value immediately
Dim total As Decimal = worksheet($"B{lastRow}").DecimalValue
$vbLabelText   $csharpLabel

IronXL obsługuje większość standardowych funkcji programu Excel, w tym funkcje matematyczne, statystyczne, tekstowe, datowe i wyszukiwania. W zaawansowanych scenariuszach obsługiwane są również formuły tablicowe (semantyka Ctrl+Shift+Enter). Ponieważ obliczanie formuł odbywa się wewnątrz procesu .NET, nie ma potrzeby korzystania z zewnętrznej usługi obliczeniowej — wyniki są dostępne natychmiast po przypisaniu formuły, co pozwala zachować przewidywalny czas odpowiedzi API nawet podczas obliczeń obejmujących tysiące wierszy. W spisie funkcji obsługiwanych przez formułę wymieniono wszystkie obsługiwane funkcje.

Jakie są Twoje kolejne kroki?

Stworzenie interfejsu API programu Excel za pomocą IronXL zapewnia aplikacjom .NET Core solidne możliwości pracy z arkuszami kalkulacyjnymi. Od tworzenia plików XLSX z sformatowanymi danymi i obliczonymi formułami po importowanie plików przesłanych przez użytkowników i eksportowanie danych w wielu formatach — IronXL obsługuje każdy aspekt programowej manipulacji arkuszami kalkulacyjnymi w sposób wielopłatformowy i bez konieczności korzystania z pakietu Office.

Zapoznaj się z poniższymi zasobami, aby dowiedzieć się więcej:

Rozpocznij bezpłatny okres próbny, aby przetestować IronXL w rzeczywistym projekcie, lub zapoznaj się z opcjami licencyjnymi, aby znaleźć odpowiedni plan do wdrożenia produkcyjnego.

Często Zadawane Pytania

Czym jest IronXL?

IronXL to biblioteka .NET dla programu Excel, która pozwala programistom tworzyć, odczytywać i eksportować pliki Excel programowo w języku C# bez konieczności korzystania z pakietu Microsoft Office lub interoperacyjności COM.

Jak utworzyć plik Excel w .NET Core bez pakietu Office?

Wywołaj WorkBook.Create(ExcelFileFormat.XLSX), aby utworzyć nowy skoroszyt, dodaj arkusze za pomocą CreateWorkSheet(), wypełnij komórki za pomocą składni worksheet['A1'].Value i przesyłaj strumieniowo wynik za pomocą workbook.ToStream().

Jak odczytać przesłany plik Excel w ASP.NET Core?

Przekaż strumień IFormFile do WorkBook.Load(stream), uzyskaj dostęp do DefaultWorkSheet i iteruj wiersze za pomocą worksheet.RowCount. Typowane akcesory, takie jak DecimalValue i DateTimeValue, pobierają dane silnie typowane z każdej komórki.

Czy IronXL może eksportować dane z Excela do plików CSV lub JSON?

Tak. Wywołaj metodę workbook.ToStream(FileFormat.CSV) w celu uzyskania danych w formacie CSV lub workbook.ToJson() w celu uzyskania reprezentacji danych skoroszytu w formacie JSON.

Czy IronXL działa na systemach Linux i macOS?

Tak. IronXL jest przeznaczony dla .NET Standard 2.0 i nowszych wersji i działa na systemach Windows, Linux oraz macOS bez konieczności instalacji pakietu Microsoft Office ani warstwy COM.

Jak zabezpieczyć plik Excel hasłem za pomocą IronXL?

Przed wywołaniem metody SaveAs() należy ustawić wartość workbook.Password na ciąg znaków. Aby zabezpieczyć arkusz, należy wywołać metodę worksheet.ProtectSheet('password'), co uniemożliwi edycję komórek, ale pozwoli na odczyt zawartości arkusza.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie