
Jak otworzyć pliki Excel w C#
IronXL umożliwia programistom C# otwieranie, odczytywanie i manipulowanie plikami Excel bez konieczności instalacji Microsoft Office. Wystarczy załadować skoroszyty za pomocą WorkBook.Load(), uzyskać dostęp do arkuszy i odczytać wartości komórek przy użyciu intuicyjnej składni, jak sheet["A1"].
Ten samouczek bada użycie IronXL do otwierania i odczytywania plików Excel w projektach C#, dostarczając początkującym programistom kompleksowych przykładów i najlepszych praktyk dotyczących pracy z danymi Excel.
Czym jest biblioteka IronXL Excel?
IronXL to biblioteka .NET, która kładzie nacisk na łatwość użycia, dokładność i szybkość. Pomaga otwierać, odczytywać, tworzyć i edytować pliki Excel efektywnie, bez konieczności użycia MS Office Interop, co czyni ją praktycznym wyborem dla programistów chcących pracować z Excelem w C# bez Interop.
IronXL is compatible with all .NET Frameworks along with Linux, macOS, Docker, Azure, and AWS. Możesz go używać do tworzenia aplikacji konsolowych, webowych i desktopowych takich jak Blazor i .NET MAUI do nowoczesnych aplikacji webowych. Obsługuje różne formaty skoroszytów, jak pliki XLS i XLSX, XSLT i XLSM, CSV oraz TSV.
Jakie są kluczowe cechy IronXL?
- Otwieraj, odczytuj i wyszukuj dane w formatach XLS/XLSX/CSV/TSV, używając LoadSpreadsheets.
- Eksportuj arkusze Excel do wielu formatów za pomocą Zapisz i Eksportuj.
- Szyfruj i odszyfruj pliki hasłami, używając zabezpieczających funkcji.
- Pracuj z arkuszami Excel jako obiekty
DataSetiDataTablepoprzez integrację DataSet. - Formuły Excel przeliczają się automatycznie, wspierając funkcje matematyczne.
- Edytuj dane w arkuszach przy użyciu intuicyjnej składni zakresu, jak
WorkSheet["A1:B10"]. - Sort Cell Ranges, Columns, and Rows.
- Style Cells with Font, Background, Border, Alignment, and Number formats.
Jak otworzyć plik Excel w C#?
Co jest potrzebne przed rozpoczęciem?
Aby używać IronXL w aplikacjach C#, zainstaluj następujące komponenty na lokalnym komputerze:
- Visual Studio - Oficjalne IDE do tworzenia aplikacji C# .NET. Program Visual Studio można pobrać i zainstalować ze strony internetowej firmy Microsoft. Możesz również użyć
JetBrainsReSharper& Rider. W celu dodatkowych wskazówek dotyczących konfiguracji, odwiedź Przegląd rozpoczęcia. - IronXL - Biblioteka Excel, która pomaga pracować z arkuszami Excel w C#. Przed użyciem należy zainstalować go w aplikacji C#. Możesz go pobrać ze strony NuGet lub z zarządzania pakietami NuGet w Visual Studio. Możesz również pobrać plik .NET Excel DLL bezpośrednio. W celu wdrożenia licencji, zobacz Używanie kluczy licencyjnych.
Jakie przestrzenie nazw należy importować?
Gdy Visual Studio i IronXL są zainstalowane, dodaj niezbędne przestrzenie nazw IronXL, umieszczając następującą linię na początku pliku C#:
// Add reference to the IronXL library
using IronXL;' Add reference to the IronXL library
Imports IronXLDo pracy z określonymi formatami Excel lub zaawansowanymi funkcjami możesz również potrzebować:
using IronXL.Formatting; // For cell styling
using IronXL.Drawing; // For images and charts
using System.Data; // For DataSet/DataTable operationsImports IronXL.Formatting ' For cell styling
Imports IronXL.Drawing ' For images and charts
Imports System.Data ' For DataSet/DataTable operationsJak załadować istniejący plik Excel?
Pliki Excel, znane również jako skoroszyty, składają się z wielu arkuszy, a każdy z nich zawiera wartości komórek. To open and read an Excel file, load it using the WorkBook class's Load method. Funkcjonalność LoadSpreadsheets obsługuje różne formaty.
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
// WorkBook workbook = WorkBook.Load(stream);
// }' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
' You can also load from streams for web applications
' Using stream = File.OpenRead("test.xlsx")
' Dim workbook As WorkBook = WorkBook.Load(stream)
' End UsingTo inicjalizuje skoroszyt jako instancję WorkBook. Aby otworzyć konkretny WorkSheet, pobierz go z kolekcji WorkSheets. Przewodnik Zarządzaj arkuszem dostarcza więcej szczegółów na temat operacji na arkuszach:
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0]; // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1"); // By name' Access the first worksheet in the workbook
Dim sheet As WorkSheet = workbook.WorkSheets.First()
' Alternative ways to access worksheets
Dim sheetByIndex As WorkSheet = workbook.WorkSheets(0) ' By index
Dim sheetByName As WorkSheet = workbook.GetWorkSheet("Sheet1") ' By nameTo uzyskuje dostęp do pierwszego arkusza w pliku Excel, przygotowanego do odczytu i zapisu.
Plik Excel
Jak odczytać dane z komórek Excel?
Po otwarciu pliku Excel jest gotowy do odczytu danych. Odczytywanie danych z plików Excel w C# za pomocą IronXL jest proste. Możesz odczytywać wartości komórek, określając odnośnik do komórki przy użyciu funkcji Wybierz Zakres.
Następujący kod pobiera wartość komórki:
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;
// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;
// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");
// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}' Select the cell using Excel notation and retrieve its integer value
Dim cellValue As Integer = sheet("C2").IntValue
' You can also retrieve values in different formats
Dim textValue As String = sheet("C2").StringValue
Dim decimalValue As Decimal = sheet("C2").DecimalValue
Dim dateValue As DateTime = sheet("C2").DateTimeValue
Dim boolValue As Boolean = sheet("C2").BoolValue
' Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}")
' Check if cell is empty before reading
If Not sheet("C2").IsEmpty Then
Console.WriteLine($"Cell value: {sheet("C2").Value}")
End IfOto wynik:
Odczytywanie Excela
Aby odczytać dane z zakresu komórek, użyj pętli do iteracji przez określony zakres. Przykład Wybierz zakres Excel dostarcza więcej wzorców:
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read an entire column
foreach (var cell in sheet.GetColumn(0)) // Column A
{
if (!cell.IsEmpty)
{
Console.WriteLine($"Column A value: {cell.Text}");
}
}
// Read an entire row
foreach (var cell in sheet.GetRow(1)) // Row 2
{
Console.WriteLine($"Row 2 value: {cell.Text}");
}' Iterate through a range of cells and display their address and text content
For Each cell In sheet("A2:A6")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next
' Read an entire column
For Each cell In sheet.GetColumn(0) ' Column A
If Not cell.IsEmpty Then
Console.WriteLine($"Column A value: {cell.Text}")
End If
Next
' Read an entire row
For Each cell In sheet.GetRow(1) ' Row 2
Console.WriteLine($"Row 2 value: {cell.Text}")
NextKażda wartość w zakresie komórek A2:A6 jest dostępna i drukowana na konsoli.
Odczytywanie zakresu komórek
Dla bardziej szczegółowych przykładów odczytu i zapisu sprawdź Samouczek odczytu pliku Excel w C#. Możesz również konwertować dane Excel na DataTables dla łatwiejszej manipulacji:
// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}' Convert worksheet to DataTable for easier data manipulation
Dim dataTable As DataTable = sheet.ToDataTable(True) ' True = first row contains headers
' Access data using DataTable methods
For Each row As DataRow In dataTable.Rows
Console.WriteLine($"Employee: {row("Name")}, Salary: {row("Salary")}")
NextJak mogę stworzyć nowy plik Excel?
IronXL ułatwia również tworzenie nowych skoroszytów do zapisywania i pobierania danych. Przewodnik "Tworzenie arkuszy kalkulacyjnych" zawiera obszerne przykłady.
Możesz utworzyć nowy plik Excel za pomocą jednej linii kodu:
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);
// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";' Create a new workbook with the XLSX format
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
' Alternative: Create with XLS format for compatibility
Dim xlsWorkBook As New WorkBook(ExcelFileFormat.XLS)
' Set workbook metadata
workBook.Metadata.Title = "Employee Data"
workBook.Metadata.Author = "Your Name"
workBook.Metadata.Keywords = "employees, salary, data"Następnie utwórz arkusz roboczy i dodaj do niego dane. Aby uzyskać informacje na temat bardziej zaawansowanych wzorców tworzenia, zobacz sekcję Tworzenie nowego pliku Excel.
Jak dodać arkusze do skoroszytu?
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");
// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");' Create a worksheet named "GDPByCountry" in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("GDPByCountry")
' Create multiple worksheets at once
Dim sheet2 As WorkSheet = workBook.CreateWorkSheet("PopulationData")
Dim sheet3 As WorkSheet = workBook.CreateWorkSheet("Summary")
' Copy an existing worksheet
Dim copiedSheet As WorkSheet = workSheet.CopySheet("GDPByCountryCopy")Ten kod dodaje do skoroszytu arkusz o nazwie "GDPByCountry", umożliwiający dodawanie wartości do komórek. Dowiedz się więcej o zarządzaniu arkuszami i kopiowaniu arkuszy.
Aby ustawić wartość dla konkretnej komórki, użyj poniższego kodu:
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Add different types of data
workSheet["A2"].Value = 12345; // Integer
workSheet["A3"].Value = 99.99m; // Decimal
workSheet["A4"].Value = DateTime.Now; // Date
workSheet["A5"].Value = true; // Boolean
// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";
// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";
// Save the workbook
workBook.SaveAs("output.xlsx");' Set the value of cell A1 to "Example"
workSheet("A1").Value = "Example"
' Add different types of data
workSheet("A2").Value = 12345 ' Integer
workSheet("A3").Value = 99.99D ' Decimal
workSheet("A4").Value = DateTime.Now ' Date
workSheet("A5").Value = True ' Boolean
' Add formulas
workSheet("B1").Formula = "=SUM(A2:A3)"
' Set multiple cells at once using a range
workSheet("C1:C5").Value = "Bulk Value"
' Save the workbook
workBook.SaveAs("output.xlsx")Ostateczny wynik to:
Dodaj wartość do komórki
Praca z różnymi formatami plików Excel
IronXL obsługuje wiele formatów Excel. Oto jak postępować z różnymi typami plików:
// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx"); // Convert CSV to XLSX
// Export to different formats
workbook.SaveAsCsv("output.csv", ";"); // CSV with semicolon delimiter
workbook.SaveAsJson("output.json"); // Export as JSON
workbook.SaveAsXml("output.xml"); // Export as XML' Convert between formats
Dim workbook As WorkBook = WorkBook.Load("data.csv")
workbook.SaveAs("data.xlsx") ' Convert CSV to XLSX
' Export to different formats
workbook.SaveAsCsv("output.csv", ";") ' CSV with semicolon delimiter
workbook.SaveAsJson("output.json") ' Export as JSON
workbook.SaveAsXml("output.xml") ' Export as XMLDowiedz się więcej o konwersji typów plików arkuszy kalkulacyjnych oraz konwersji plików XLSX do formatów CSV, JSON i XML.
Obsługa błędów i najlepsze praktyki
Podczas pracy z plikami Excel należy zapewnić odpowiednią obsługę błędów:
try
{
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Sheet1");
// Check if sheet exists
if (sheet == null)
{
Console.WriteLine("Worksheet not found!");
return;
}
// Process data
var value = sheet["A1"].Value;
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}Try
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Sheet1")
' Check if sheet exists
If sheet Is Nothing Then
Console.WriteLine("Worksheet not found!")
Return
End If
' Process data
Dim value = sheet("A1").Value
Catch ex As Exception
Console.WriteLine($"Error reading Excel file: {ex.Message}")
End TryW przypadku aplikacji produkcyjnych warto rozważyć skonfigurowanie logowania i wdrożenie odpowiednich wzorców obsługi błędów.
Czego się nauczyliśmy?
W tym artykułe pokazano, jak otwierać i odczytywać pliki Excel, takie jak XLS i XLSX, w języku C# przy użyciu biblioteki IronXL. IronXL nie wymaga instalacji programu Microsoft Excel w systemie do wykonywania zadań związanych z Excelem, dzięki czemu idealnie nadaje się do wdrożeń w Dockerze i Azure Functions.
IronXL zapewnia kompleksowe rozwiązanie do programowego wykonywania zadań związanych z programem Excel, w tym obliczania formuł, sortowania ciągów znaków, przycinania, wyszukiwania i zamiany, scałania i rozdzielania, zapisywania plików i wielu innych. Można również ustawić formaty danych w komórkach, korzystać z formatowania warunkowego oraz tworzyć wykresy.
Aby poznać zaawansowane funkcje, zapoznaj się z grupowaniem i rozgrupowywaniem, nazwanymi zakresami, hiperłączami oraz zabezpieczaniem plików Excel. Pełna dokumentacja API zawiera szczegółowe informacje na temat wszystkich funkcji.
IronXL jest dostępny w ramach bezpłatnego 30-dniowego okresu próbnego i można uzyskać licencję na jego komercyjne wykorzystanie. Pakiet Lite IronXL zaczyna się od $999. Aby uzyskać dodatkowe zasoby, odwiedź sekcję samouczków lub zapoznaj się z przykładami kodu dla typowych scenariuszy.

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



