Jak czytać pliki Excel w C# zamiast używać StreamReader
Wielu programistów C# napotyka frustrujące wyzwanie podczas pracy z plikami Excel: klasa StreamReader, która niezawodnie obsługuje pliki tekstowe, całkowicie zawodzi w przypadku dokumentów Excel. Jeśli próbowałeś odczytać plik Excel przy użyciu StreamReader w języku C# i zobaczyłeś tylko zniekształcone znaki, szum binarny lub nieoczekiwane wyjątki, nie jesteś sam. W tym przewodniku wyjaśniono dokładnie, dłączego StreamReader nie obsługuje plików Excel, oraz pokazano, jak poprawnie rozwiązać ten problem za pomocą biblioteki IronXL — dedykowanej biblioteki Excel dla platformy .NET, która nie wymaga instalacji programu Excel.
Często pojawia się niejasność, ponieważ pliki CSV — które Excel może otwierać i zapisywać — działają poprawnie z StreamReader. Prawdziwe pliki Excel (XLSX, XLS, XLSM) wymagają zupełnie innego podejścia. Zrozumienie tej różnicy pozwoli Ci zaoszczędzić wiele godzin na debugowaniu i skieruje Cię do odpowiedniego narzędzia do danego zadania.

Dłączego StreamReader nie może odczytywać plików Excel?
StreamReader to czytnik tekstowy. Odczytuje dane znakowe wiersz po wierszu przy użyciu określonego kodowania (UTF-8, ASCII itp.) i nie rozpoznaje struktur binarnych ani skompresowanych archiwów. Oficjalna dokumentacja .NET StreamReader potwierdza, że klasa ta jest przeznaczona wyłącznie do tekstu zakodowanego znakowo. Pliki Excel, mimo że wyglądają jak proste arkusze kalkulacyjne, są w rzeczywistości złożonymi strukturami binarnymi lub skompresowanymi w formacie ZIP plikami XML, których StreamReader nie potrafi zinterpretować.
Otwierając plik XLSX za pomocą StreamReader, próbujesz w zasadzie odczytać archiwum ZIP jako zwykły tekst. Wynikiem jest strumień szumu binarnego, a nie dane z arkusza kalkulacyjnego.
// This code will NOT work -- demonstrates the problem
using StreamReader reader = new StreamReader("ProductData.xlsx");
string content = reader.ReadLine();
Console.WriteLine(content); // Outputs garbled binary data like "PK♥♦"
// This code will NOT work -- demonstrates the problem
using StreamReader reader = new StreamReader("ProductData.xlsx");
string content = reader.ReadLine();
Console.WriteLine(content); // Outputs garbled binary data like "PK♥♦"
Imports System.IO
' This code will NOT work -- demonstrates the problem
Using reader As New StreamReader("ProductData.xlsx")
Dim content As String = reader.ReadLine()
Console.WriteLine(content) ' Outputs garbled binary data like "PK♥♦"
End Using
Po uruchomieniu tego fragmentu kodu zamiast wierszy arkusza kalkulacyjnego pojawiają się znaki binarne, takie jak PK♥♦ lub podobne zakłócenia. Dzieje się tak, ponieważ:
- Pliki XLSX to archiwa ZIP zawierające wiele plików XML: arkusze, style, wspólne ciągi znaków, relacje. Dokumentacja Open XML SDK zawiera szczegółowy opis tej struktury.
- Pliki XLS wykorzystują zastrzeżony format binarny (BIFF — Binary Interchange Format pliku)
StreamReaderstosuje kodowanie znaków do wszystkich odczytanych bajtów, generując bezsensowny wynik dla obu formatów
Przykładowe dane wejściowe

Zniekształcony wynik podczas korzystania z StreamReader

Dłączego CSV działa, a XLSX nie
CSV (Comma-Separated Values) to format tekstu zwykłego. Każdy wiersz to linia tekstu, a kolumny są oddzielone przecinkami. StreamReader bez problemu odczytuje pliki CSV, ponieważ nie zawierają one danych binarnych ani skompresowanych archiwów. XLSX różni się zasadniczo: pakuje wiele dokumentów XML w kontenerze ZIP wraz z metadanymi, motywami i definicjami stylów. Nie ma możliwości prostego czytania tekstu wiersz po wierszu.
To rozróżnienie ma znaczenie przy wyborze narzędzi. W przypadku plików CSV StreamReader lub File.ReadAllLines są całkowicie wystarczające. W przypadku prawdziwych skoroszytów Excel potrzebna jest biblioteka, która rozumie format na poziomie strukturalnym.
Jak zainstalować IronXL w projekcie .NET?
Biblioteka IronXL .NET odczytuje, zapisuje i tworzy pliki Excel bez konieczności instalowania programu Microsoft Excel. Obsługuje formaty XLSX, XLS, XLSM, CSV i TSV oraz działa w systemach Windows, Linux, macOS i kontenerach Docker.
Aby zainstalować IronXL, użyj konsoli NuGet Package Manager Console lub interfejsu CLI .NET. Pakiet jest opublikowany na NuGet.org jako IronXL:
Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
Po instalacji dodaj dyrektywę using IronXL; do swojego pliku i możesz rozpocząć pracę z dokumentami Excel.

Szczegółowe instrukcje instalacji i opcje konfiguracji NuGet można znaleźć w przewodniku instalacji IronXL NuGet. Dostępna jest bezpłatna licencja próbna, dzięki czemu przed zakupem można przetestować IronXL w swoim projekcie.

Jak odczytywać pliki Excel za pomocą IronXL?
IronXL zapewnia intuicyjny interfejs API do odczytu plików Excel w języku C#. W przeciwieństwie do StreamReader, IronXL rozumie wewnętrzną strukturę programu Excel i zapewnia łatwy dostęp do wierszy, kolumn i wartości komórek. Dokumentacja IronXL zawiera pełne opisy API dla wszystkich obsługiwanych operacji.
Oto jak odczytać plik Excel za pomocą IronXL przy użyciu instrukcji najwyższego poziomu:
using IronXL;
// Load the Excel file from disk
WorkBook workbook = WorkBook.Load("ProductData.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Read a specific cell by address
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Iterate over a range of cells
foreach (var cell in worksheet["A1:C10"])
{
Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Read a numeric value
decimal price = worksheet["B2"].DecimalValue;
Console.WriteLine($"Price: {price:C}");
using IronXL;
// Load the Excel file from disk
WorkBook workbook = WorkBook.Load("ProductData.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Read a specific cell by address
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Iterate over a range of cells
foreach (var cell in worksheet["A1:C10"])
{
Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Read a numeric value
decimal price = worksheet["B2"].DecimalValue;
Console.WriteLine($"Price: {price:C}");
Imports IronXL
' Load the Excel file from disk
Dim workbook As WorkBook = WorkBook.Load("ProductData.xlsx")
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet
' Read a specific cell by address
Dim cellValue As String = worksheet("A1").StringValue
Console.WriteLine($"Cell A1 contains: {cellValue}")
' Iterate over a range of cells
For Each cell In worksheet("A1:C10")
Console.WriteLine($"{cell.AddressString}: {cell.Text}")
Next
' Read a numeric value
Dim price As Decimal = worksheet("B2").DecimalValue
Console.WriteLine($"Price: {price:C}")
Metoda WorkBook.Load automatycznie wykrywa format pliku (XLSX, XLS, XLSM, CSV) i zajmuje się całym złożonym procesem parsowania. Dostęp do komórek uzyskuje się za pomocą standardowej notacji programu Excel, takiej jak "A1", lub zakresów, takich jak "A1:C10", co sprawia, że kod jest natychmiast czytelny dla każdego, kto zna arkusze kalkulacyjne.
Dostęp do wielu arkuszy
Wiele skoroszytów zawiera więcej niż jeden arkusz. IronXL pozwala otwierać i przeglądać skoroszyty z pełnym wyliczeniem arkuszy:
using IronXL;
WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");
// List all worksheets
foreach (WorkSheet sheet in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}");
}
// Access a sheet by name
WorkSheet summary = workbook.GetWorkSheet("Summary");
string totalRevenue = summary["B20"].StringValue;
Console.WriteLine($"Total Revenue: {totalRevenue}");
// Access a sheet by index
WorkSheet firstSheet = workbook.WorkSheets[0];
int lastRow = firstSheet.RowCount;
Console.WriteLine($"Last row in first sheet: {lastRow}");
using IronXL;
WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");
// List all worksheets
foreach (WorkSheet sheet in workbook.WorkSheets)
{
Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}");
}
// Access a sheet by name
WorkSheet summary = workbook.GetWorkSheet("Summary");
string totalRevenue = summary["B20"].StringValue;
Console.WriteLine($"Total Revenue: {totalRevenue}");
// Access a sheet by index
WorkSheet firstSheet = workbook.WorkSheets[0];
int lastRow = firstSheet.RowCount;
Console.WriteLine($"Last row in first sheet: {lastRow}");
Imports IronXL
Dim workbook As WorkBook = WorkBook.Load("MultiSheet.xlsx")
' List all worksheets
For Each sheet As WorkSheet In workbook.WorkSheets
Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}")
Next
' Access a sheet by name
Dim summary As WorkSheet = workbook.GetWorkSheet("Summary")
Dim totalRevenue As String = summary("B20").StringValue
Console.WriteLine($"Total Revenue: {totalRevenue}")
' Access a sheet by index
Dim firstSheet As WorkSheet = workbook.WorkSheets(0)
Dim lastRow As Integer = firstSheet.RowCount
Console.WriteLine($"Last row in first sheet: {lastRow}")
Takie podejście jest znacznie czystsze niż jakakolwiek próba analizowania arkusza Excel za pomocą StreamReader lub manipulacji ciągami znaków.
Jak odczytać dane z Excela ze strumienia pamięci?
W rzeczywistych zastosowaniach często konieczne jest przetwarzanie plików Excel z strumieni, a nie z dysku. Typowe scenariusze obejmują obsługę przesyłania plików z formularzy internetowych, pobieranie skoroszytów z kolumny BLOB bazy danych lub przetwarzanie plików pobranych z pamięci masowej w chmurze (Azure Blob Storage, AWS S3). IronXL obsługuje te scenariusze za pomocą WorkBook.FromStream:
using IronXL;
using System.IO;
// Simulate reading file bytes (e.g., from a database or web upload)
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");
using MemoryStream stream = new MemoryStream(fileBytes);
WorkBook workbook = WorkBook.FromStream(stream);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Get row and column counts
Console.WriteLine($"Rows: {worksheet.RowCount}, Columns: {worksheet.ColumnCount}");
// Convert to DataTable for database or grid binding
var dataTable = worksheet.ToDataTable(useHeaderRow: true);
Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");
foreach (System.Data.DataRow row in dataTable.Rows)
{
string productName = row["ProductName"]?.ToString() ?? string.Empty;
string sku = row["SKU"]?.ToString() ?? string.Empty;
Console.WriteLine($"Product: {productName}, SKU: {sku}");
}
using IronXL;
using System.IO;
// Simulate reading file bytes (e.g., from a database or web upload)
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");
using MemoryStream stream = new MemoryStream(fileBytes);
WorkBook workbook = WorkBook.FromStream(stream);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Get row and column counts
Console.WriteLine($"Rows: {worksheet.RowCount}, Columns: {worksheet.ColumnCount}");
// Convert to DataTable for database or grid binding
var dataTable = worksheet.ToDataTable(useHeaderRow: true);
Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");
foreach (System.Data.DataRow row in dataTable.Rows)
{
string productName = row["ProductName"]?.ToString() ?? string.Empty;
string sku = row["SKU"]?.ToString() ?? string.Empty;
Console.WriteLine($"Product: {productName}, SKU: {sku}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
WorkBook.FromStream akceptuje dowolny Stream -- MemoryStream, FileStream lub strumień sieciowy. Ta elastyczność oznacza, że nigdy nie musisz zapisywać plików tymczasowych na dysku tylko po to, aby odczytać dane z Excela. Konwersja do DataTable integruje się również bezpośrednio z SqlBulkCopy, kontrolkami powiązania danych oraz frameworkami raportowania.
Wynik przetwarzania strumieniowego

Kiedy stosuje się odczyt danych z Excela sterowany zdarzeniami?
W architekturach sterowanych zdarzeniami — na przykład przycisk przesyłania plików w Windows Forms lub akcja kontrolera ASP.NET — sygnatura metody często zawiera parametry object sender i EventArgs e. Logika przetwarzania w Excelu nadal korzysta z tego samego interfejsu API IronXL, ale jest wywoływana z poziomu procedury obsługi zdarzenia, a nie z instrukcji najwyższego poziomu. IronXL płynnie integruje się z dowolnym przepływem pracy opartym na zdarzeniach lub asynchronicznym, ponieważ nie jest zależny od wątku interfejsu użytkownika.

Jak konwertować pliki między formatami Excel i CSV?
Chociaż StreamReader obsługuje pliki CSV, aplikacje produkcyjne często wymagają przenoszenia danych między programem Excel a plikami CSV. IronXL sprawia, że konwersja formatów jest prosta. Wystarczy kilka wierszy kodu, aby wyeksportować dane z Excela do pliku CSV lub zaimportować dane z pliku CSV do skoroszytu:
using IronXL;
// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("SalesData.xlsx");
workbook.SaveAsCsv("output.csv");
// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("legacy-report.csv");
csvWorkbook.SaveAs("converted.xlsx");
// Export a specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("sheet1-export.csv");
using IronXL;
// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("SalesData.xlsx");
workbook.SaveAsCsv("output.csv");
// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("legacy-report.csv");
csvWorkbook.SaveAs("converted.xlsx");
// Export a specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("sheet1-export.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Te konwersje pozwalają zachować dane przy zmianie formatu kontenera. Podczas konwersji pliku Excel do formatu CSV program IronXL domyślnie eksportuje pierwszy arkusz; możesz wybrać dowolny arkusz. Konwersja pliku CSV do formatu Excel tworzy odpowiednio ustrukturyzowany skoroszyt, który można następnie sformatować, dodać do niego formuły i wpisać dodatkowe dane.
Jakie są różnice w obsługiwanych formatach?
| Format pliku | StreamReader | IronXL | Uwagi |
|---|---|---|---|
| CSV (.csv) | Tak | Tak | Zwykły tekst; StreamReader działa dobrze |
| XLSX (.xlsx) | Nie | Tak | Plik XML skompresowany w formacie ZIP; wymaga biblioteki |
| XLS (.xls) | Nie | Tak | Format binarny BIFF; wymaga biblioteki |
| XLSM (.xlsm) | Nie | Tak | Skoroszyt z włączoną obsługą makr |
| TSV (.tsv) | Tak | Tak | Zwykły tekst rozdzielony tabulatorami |
Jak tworzyć i formatować pliki Excel za pomocą IronXL?
Odczytywanie danych z Excela to tylko część procesu. Wiele aplikacji wymaga również tworzenia nowych plików Excel i stosowania formatowania. IronXL obsługuje formatowanie komórek, w tym czcionki, kolory, obramowania, formaty liczb i scałanie komórek:
using IronXL;
// Create a new workbook and worksheet
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.CreateWorkSheet("Report");
// Write headers with formatting
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";
// Apply bold formatting to header row
sheet["A1:C1"].Style.Font.Bold = true;
sheet["A1:C1"].Style.SetBackgroundColor("#4472C4");
sheet["A1:C1"].Style.Font.Color = "#FFFFFF";
// Write data rows
string[] products = { "Widget A", "Widget B", "Widget C" };
int[] units = { 120, 85, 210 };
decimal[] revenues = { 2400.00m, 1700.00m, 4200.00m };
for (int i = 0; i < products.Length; i++)
{
sheet[$"A{i + 2}"].Value = products[i];
sheet[$"B{i + 2}"].Value = units[i];
sheet[$"C{i + 2}"].Value = revenues[i];
sheet[$"C{i + 2}"].FormatString = "$#,##0.00";
}
// Save the workbook
workbook.SaveAs("FormattedReport.xlsx");
Console.WriteLine("Report created successfully.");
using IronXL;
// Create a new workbook and worksheet
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.CreateWorkSheet("Report");
// Write headers with formatting
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";
// Apply bold formatting to header row
sheet["A1:C1"].Style.Font.Bold = true;
sheet["A1:C1"].Style.SetBackgroundColor("#4472C4");
sheet["A1:C1"].Style.Font.Color = "#FFFFFF";
// Write data rows
string[] products = { "Widget A", "Widget B", "Widget C" };
int[] units = { 120, 85, 210 };
decimal[] revenues = { 2400.00m, 1700.00m, 4200.00m };
for (int i = 0; i < products.Length; i++)
{
sheet[$"A{i + 2}"].Value = products[i];
sheet[$"B{i + 2}"].Value = units[i];
sheet[$"C{i + 2}"].Value = revenues[i];
sheet[$"C{i + 2}"].FormatString = "$#,##0.00";
}
// Save the workbook
workbook.SaveAs("FormattedReport.xlsx");
Console.WriteLine("Report created successfully.");
Imports IronXL
' Create a new workbook and worksheet
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workbook.CreateWorkSheet("Report")
' Write headers with formatting
sheet("A1").Value = "Product"
sheet("B1").Value = "Units Sold"
sheet("C1").Value = "Revenue"
' Apply bold formatting to header row
sheet("A1:C1").Style.Font.Bold = True
sheet("A1:C1").Style.SetBackgroundColor("#4472C4")
sheet("A1:C1").Style.Font.Color = "#FFFFFF"
' Write data rows
Dim products As String() = {"Widget A", "Widget B", "Widget C"}
Dim units As Integer() = {120, 85, 210}
Dim revenues As Decimal() = {2400.0D, 1700.0D, 4200.0D}
For i As Integer = 0 To products.Length - 1
sheet($"A{i + 2}").Value = products(i)
sheet($"B{i + 2}").Value = units(i)
sheet($"C{i + 2}").Value = revenues(i)
sheet($"C{i + 2}").FormatString = "$#,##0.00"
Next
' Save the workbook
workbook.SaveAs("FormattedReport.xlsx")
Console.WriteLine("Report created successfully.")
Możliwość zarówno odczytu istniejących skoroszytów, jak i tworzenia nowych sformatowanych plików sprawia, że IronXL jest kompletnym rozwiązaniem Excel dla aplikacji .NET. Zapoznaj się z pełną stroną funkcji IronXL, aby uzyskać szczegółowy opis obsługiwanych operacji.
Eksportowanie danych do innych formatów
IronXL obsługuje również eksport danych skoroszytu do obiektów DataSet, co jest szczególnie przydatne podczas ładowania wielu arkuszy do pamięci w celu wykonywania obliczeń międzyarkuszowych lub operacji zbiorczego wstawiania danych do bazy danych. Metoda ToDataSet zwraca DataSet, gdzie każdy arkusz staje się DataTable.

Jak uzyskać licencję i wdrożyć IronXL w środowisku produkcyjnym?
IronXL jest bezpłatny do celów programistycznych i testowych. W przypadku aplikacji produkcyjnych wymagańa jest licencja. Opcje licencji IronXL można sprawdzić na stronie produktu, która obejmuje poziomy Developer, Team i Organization w zależności od wymagań wdrożeniowych.
Po zakupie należy zastosować klucz licencyjny w kodzie przed wywołaniem jakiejkolwiek funkcji IronXL:
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXl
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
Alternatywnie, ustaw zmienną środowiskową IRONXL_LICENSE_KEY w swoim środowisku wdrożeniowym, a IronXL automatycznie ją wykryje. Jest to preferowane podejście w przypadku wdrożeń kontenerowych (Docker, Kubernetes) oraz środowisk chmurowych, gdzie twarde kodowanie kluczy jest niedopuszczalne.
W celu oceny dostępna jest bezpłatna licencja próbna zapewniająca pełną funkcjonalność, dzięki czemu można przetestować IronXL w konkretnych warunkach pracy przed podjęciem decyzji o zakupie. Wersja próbna jest dostępna bez karty kredytowej i aktywuje się natychmiast.
W porównaniu z alternatywami, takimi jak Microsoft.Office.Interop.Excel, IronXL ma kilka zalet wdrożeniowych:
- Nie ma wymogu, aby na serwerze był zainstalowany program Microsoft Excel
- Kompatybilność z systemem Linux i Dockerem — kluczowa dla aplikacji natywnych dla chmury
- Brak problemów związanych z zarządzaniem cyklem życia obiektów COM lub wątkiem typu apartment
- Szybsze uruchamianie i mniejsze zużycie pamięci w środowiskach serwerowych
- Spójne działanie na wszystkich obsługiwanych platformach
Te cechy sprawiają, że IronXL jest praktycznym wyborem dla każdej aplikacji .NET, która musi przetwarzać pliki Excel w środowisku produkcyjnym, zarówno lokalnym, jak i w chmurze.
Często Zadawane Pytania
Dlaczego StreamReader nie może obsługiwać plików Excel bezpośrednio?
StreamReader jest przeznaczony do odczytu plików tekstowych i nie ma możliwości analizowania formatów danych binarnych lub o złożonej strukturze, używanych w plikach Excel. To ograniczenie powoduje zniekształcenie znaków lub wyjątki podczas próby bezpośredniego odczytu plików Excel za pomocą StreamReader.
Jakie jest zalecane rozwiązanie do odczytu plików Excel w języku C#?
Zalecanym rozwiązaniem jest użycie biblioteki IronXL, potężnej biblioteki, która pozwala na odczytywanie, edytowanie i tworzenie plików Excel w języku C# bez konieczności korzystania z Excel Interop. IronXL potrafi sprawnie obsługiwać złożoną strukturę plików Excel.
Jakie zalety oferuje IronXL w porównaniu z Excel Interop?
IronXL oferuje kilka zalet w porównaniu z Excel Interop, w tym lepszą wydajność, brak zależności od zainstalowanego programu Excel na serwerze lub komputerze klienckim, łatwiejsze wdrożenie oraz możliwość pracy z plikami Excel w środowiskach internetowych i chmurowych.
Czy IronXL obsługuje zarówno formaty plików .xls, jak i .xlsx?
Tak, IronXL obsługuje zarówno pliki Excel w formacie .xls, jak i .xlsx, zapewniając elastyczność programistom pracującym z różnymi typami dokumentów Excel.
Czy IronXL może być używany w aplikacjach internetowych?
Tak, IronXL jest zaprojektowany do użycia w różnych typach aplikacji, w tym aplikacjach internetowych, dzięki swojej lekkości i kompatybilności z .NET Core oraz .NET Framework.
Czy IronXL wymaga zainstalowania programu Microsoft Excel?
Nie, IronXL nie wymaga zainstalowanego programu Microsoft Excel na serwerze ani komputerze klienckim, co czyni go idealnym dla aplikacji działających po stronie serwera oraz w srodowiskach chmurowych.
Jakie są typowe przypadki użycia IronXL?
Typowe przypadki użycia IronXL to ekstrakcja i analiza danych z plików Excel, generowanie raportów, automatyzacja tworzenia i modyfikacji plików Excel oraz integracja danych Excel z innymi aplikacjami.




