C# Odczyt pliku XLSX

This article was translated from English: Does it need improvement?
Translated
View the article in English

Aby odczytywać pliki XLSX w języku C#, należy użyć metody WorkBook.Load biblioteki IronXL do otwierania plików Excel i uzyskiwania dostępu do arkuszy w celu odczytu danych z komórek, wykonywania obliczeń oraz konwersji do formatów DataTable lub DataSet za pomocą kodu.

Szybki start: Załaduj skoroszyt i uzyskaj dostęp do arkusza roboczego bez wysiłku

Dzięki IronXL można załadować plik XLSX za pomocą metody WorkBook.Load w jednym wierszu. Następnie można natychmiast uzyskać dostęp do pierwszego lub nazwanego arkusza i rozpocząć odczytywanie wartości komórek.

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel
  2. Skopiuj i uruchom ten fragment kodu.

    IronXl.WorkBook workbook = IronXl.WorkBook.Load("your-file.xlsx");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Odczyt plików .XLSX C#

  • Pobierz IronXL dla swojego projektu
  • Załaduj WorkBook
  • Uzyskaj dostęp do danych z WorkSheet
  • Zastosuj funkcje takie jak Sum, Min i Max
  • Odczytaj WorkSheet jako DataTable, DataSet i inne
How To Work related to C# Odczyt pliku XLSX

Jak uzyskać IronXL dla mojego projektu?

Użyj IronXL w swoim projekcie jako prostego sposobu pracy z formatami plików Excel w C#. Można albo zainstalować IronXL przez bezpośrednie pobranie, albo można użyć NuGet Install for Visual Studio. Oprogramowanie jest darmowe do celów rozwojowych.

Install-Package IronXL.Excel

Przed przystąpieniem do odczytu plików XLSX, zapoznaj się z obszerną dokumentacją IronXL w celu zrozumienia wszystkich dostępnych funkcji. IronXL obsługuje zarówno formaty .xls, jak i .xlsx, co czyni go wszechstronnym dla plików Excel starszych i nowoczesnych.


Poradnik "Jak to zrobić"

Jak załadować WorkBook?

WorkBook to klasa IronXL, której obiekt zapewnia pełny dostęp do pliku Excel i wszystkich jego funkcji. Na przykład, aby uzyskać dostęp do pliku Excel, użyj kodu:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-load-workbook.cs
using IronXL;

// Load the workbook
WorkBook workBook = WorkBook.Load("sample.xlsx"); // Excel file path
Imports IronXL

' Load the workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path
$vbLabelText   $csharpLabel

Dlaczego warto używać metody WorkBook.Load()?

W powyższym kodzie funkcja Load() ładuje WorkBook do WorkBook. Na WorkBook można wykonać dowolną funkcję, uzyskując dostęp do konkretnego WorkSheet pliku Excel. Metoda Load() automatycznie wykrywa format pliku, niezależnie od tego, czy jest to XLS, XLSX, XLSM, XLTX czy CSV. W przypadku bardziej zaawansowanych scenariuszy ładowania zapoznaj się ze szczegółowym przewodnikiem dotyczącym ładowania arkuszy kalkulacyjnych.


Jak uzyskać dostęp do określonego WorkSheet?

Aby uzyskać dostęp do konkretnego WorkSheet pliku Excel, IronXL udostępnia klasę WorkBook. Można go stosować na kilka różnych sposobów:

Jakie są różne sposoby uzyskania dostępu do arkusza roboczego?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-worksheet.cs
using IronXL;

// Access sheet by name
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
Imports IronXL

' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

WorkBook["SheetName"] to WorkSheet zadeklarowany w powyższej części.

LUB

WorkBook

LUB

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-worksheet-index.cs
using IronXL;

// Access sheet by index
WorkSheet workSheet = workBook.WorkSheets[0];
Imports IronXL

' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
$vbLabelText   $csharpLabel

LUB

WorkBook.Load()

LUB

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-default-worksheet.cs
using IronXL;

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
Imports IronXL

' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

LUB

sample.xlsx

LUB

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-worksheet.cs
using IronXL;
using System.Linq;

// Access the first worksheet
WorkSheet workSheet = workBook.WorkSheets.First();
Imports IronXL
Imports System.Linq

' Access the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
$vbLabelText   $csharpLabel

LUB

workBook

LUB

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-or-default-worksheet.cs
using IronXL;
using System.Linq;

// Access the first or default worksheet
WorkSheet workSheet = workBook.WorkSheets.FirstOrDefault();
Imports IronXL
Imports System.Linq

' Access the first or default worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

LUB

workBook

LUB

WorkBook.Load

LUB

WorkSheet

LUB

WorkSheet

LUB

workBook

LUB

WorkBook

Kiedy powinienem używać każdej metody dostępu do arkusza roboczego?

Każda metoda ma idealny przypadek użycia:

  • GetWorkSheet("name"): Gdy znasz dokładną nazwę arkusza
  • WorkSheets[index]: Do iteracji po arkuszach za pomocą kodu
  • DefaultWorkSheet: Szybki dostęp podczas pracy z plikami jednostronicowymi
  • First() lub FirstOrDefault(): Bezpieczne opcje w przypadku, gdy nazwy arkuszy mogą ulec zmianie

Po uzyskaniu ExcelSheet workSheet można z niego pobrać dowolny typ danych i wykonać na nim wszystkie funkcje programu Excel. Więcej złożonych operacji na arkuszach roboczych znajdziesz w przewodniku na temat otwierania arkuszy Excel w C#.


Jak uzyskiwać dostęp do danych z WorkSheet?

Dostęp do danych można uzyskać z ExcelSheet workSheet w następujący sposób:

Jakie typy danych mogę odczytać z komórek?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-data.cs
using IronXL;

// Accessing data as a string
string dataString = workSheet["A1"].ToString();

// Accessing data as an integer
int dataInt = workSheet["B1"].Int32Value;
Imports IronXL

' Accessing data as a string
Dim dataString As String = workSheet("A1").ToString()

' Accessing data as an integer
Dim dataInt As Integer = workSheet("B1").Int32Value
$vbLabelText   $csharpLabel

IronXL zapewnia różne akcesory wartości dla różnych typów danych:

  • StringValue: Dla danych tekstowych
  • Int32Value: Dla liczb całkowitych
  • DoubleValue: Dla liczb dziesiętnych
  • DateTimeValue: W przypadku dat
  • BoolValue: Dla wartości true/false

Jak odczytywać wiele komórek naraz?

Możesz również uzyskać dane z wielu komórek określonej kolumny:

foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
For Each cell In workSheet("A2:A10")
	Console.WriteLine("Value is: {0}", cell.Text)
Next cell
$vbLabelText   $csharpLabel

Wyświetla wartości z komórek A2 do A10. Dla bardziej zaawansowanych technik wyboru zakresu, odwiedź samouczek wyboru zakresu.

Jak wygląda pełna implementacja?

Pełny przykład kodu dla powyższych specyfik następuje tutaj:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-log-data.cs
using IronXL;
using System;

// Load an Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
Imports IronXL
Imports System

' Load an Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify the range
For Each cell In workSheet("B2:B10")
    Console.WriteLine("Value is: {0}", cell.Text)
Next
$vbLabelText   $csharpLabel

Pokazuje następujący wynik:

Wynik konsoli pokazujący wyodrębnione dane z arkusza roboczego z wartościami Rządowe, Prywatne, Średni rynek i Partnerzy kanałowi

Z plikiem Excel Sample.xlsx:

Arkusz kalkulacyjny Excel z danymi biznesowymi pokazujący kolumny Segment, Kraj, Produkt i Pasmo zniżek na 16 rzędach

Te metody pokazują, jak bezwysiłkowo można używać danych z pliku Excel w projekcie. Dla praktycznych przykładów odczytu plików Excel bez Interop, zapoznaj się z przykładami odczytu Excela.


Jak mogę wykonywać funkcje na danych?

Uzyskaj dostęp do przefiltrowanych danych z arkusza Excel WorkSheet, stosując funkcje agregujące, takie jak Sum, Min lub Max, przy użyciu następującego kodu:

Jakie funkcje agregacyjne są dostępne?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-aggregate-function.cs
using IronXL;

// Apply aggregate functions
decimal sum = workSheet["G2:G10"].Sum(); // Sum of cells from G2 to G10
decimal min = workSheet["G2:G10"].Min(); // Minimum value in cells from G2 to G10
decimal max = workSheet["G2:G10"].Max(); // Maximum value in cells from G2 to G10
Imports IronXL

' Apply aggregate functions
Dim sum As Decimal = workSheet("G2:G10").Sum() ' Sum of cells from G2 to G10
Dim min As Decimal = workSheet("G2:G10").Min() ' Minimum value in cells from G2 to G10
Dim max As Decimal = workSheet("G2:G10").Max() ' Maximum value in cells from G2 to G10
$vbLabelText   $csharpLabel

IronXL wspiera liczne funkcje matematyczne w tym:

  • Average(): Oblicz wartość średnią
  • Count(): Zlicz komórki niepuste
  • CountIf(): Zlicz komórki spełniające kryteria
  • Median(): Znajdź wartość środkową
  • StdDev(): Oblicz odchylenie standardowe

Jak wdrożyć wiele funkcji razem?

Dla większej ilości szczegółów, sprawdź nasz dogłębny samouczek na temat Jak Zapisać pliki Excel w C# ze szczegółami dotyczącymi funkcji agregacyjnych. Możesz również zapoznać się z pełną listą funkcji matematycznych dostępnych w IronXL.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-min-max.cs
using IronXL;
using System;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Calculate sum, minimum, and maximum for a range of cells
decimal sum = workSheet["G2:G10"].Sum();
decimal min = workSheet["G2:G10"].Min();
decimal max = workSheet["G2:G10"].Max();

// Output results
Console.WriteLine("Sum is: {0}", sum);
Console.WriteLine("Min is: {0}", min);
Console.WriteLine("Max is: {0}", max);
Imports IronXL
Imports System

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Calculate sum, minimum, and maximum for a range of cells
Dim sum As Decimal = workSheet("G2:G10").Sum()
Dim min As Decimal = workSheet("G2:G10").Min()
Dim max As Decimal = workSheet("G2:G10").Max()

' Output results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
$vbLabelText   $csharpLabel

Ten kod wyświetla następujący wynik:

Terminal pokazujący wyniki analizy danych: Suma=482, Min=12, Max=350 na czarnym tle

A tak wygląda plik Excel Sample.xlsx:

Arkusz kalkulacyjny Excel z danymi sprzedażowymi pokazujący segmenty, kraje, produkty, sprzedane jednostki i ceny na wielu rzędach

Jak odczytywać WorkSheet Excel jako DataTable?

Using IronXL, it is easy to work with an Excel file WorkSheet as DataTable. Ta funkcja jest szczególnie użyteczna, gdy trzeba zintegrować dane z Excela z istniejącymi systemami przetwarzania danych lub związać dane z kontrolkami interfejsu użytkownika.

Jaka jest podstawowa metoda konwersji?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable
DataTable dt = workSheet.ToDataTable();
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable()
$vbLabelText   $csharpLabel

Jak użyć pierwszego wiersza jako nagłówków kolumn?

Aby użyć pierwszego wiersza ExcelSheet jako DataTable ColumnName:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable-header.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable with the first row as column names
DataTable dt = workSheet.ToDataTable(true);
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable with the first row as column names
Dim dt As DataTable = workSheet.ToDataTable(True)
$vbLabelText   $csharpLabel

Parametr boolowski ToDataTable() ustawia pierwszy wiersz jako nazwy kolumn w DataTable. Domyślnie jego wartość to False. Jest to szczególnie przydatne, gdy pracuje się z danymi uporządkowanymi, które zawierają nagłówki.

Jak przeprowadzić iterację przez DataTable?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-print-datatable.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Convert WorkSheet to DataTable
DataTable dt = workSheet.ToDataTable(true); // Use first row as column names

// Iterate through rows and columns and display data
foreach (DataRow row in dt.Rows) // Access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) // Access columns of corresponding row
    {
        Console.Write(row[i] + " ");
    }
    Console.WriteLine();
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Convert WorkSheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable(True) ' Use first row as column names

' Iterate through rows and columns and display data
For Each row As DataRow In dt.Rows ' Access rows
    For i As Integer = 0 To dt.Columns.Count - 1 ' Access columns of corresponding row
        Console.Write(row(i) & " ")
    Next
    Console.WriteLine()
Next
$vbLabelText   $csharpLabel

Korzystając z powyższego kodu, można uzyskać dostęp do każdej wartości komórki WorkSheet i wykorzystać ją zgodnie z potrzebami. Aby uzyskać informacje na temat bardziej zaawansowanych operacji DataTable, zapoznaj się z przewodnikiem dotyczącym importowania i eksportowania jako DataSet.


Jak odczytywać plik Excel jako DataSet?

IronXL udostępnia prostą funkcję umożliwiającą wykorzystanie kompletnego pliku Excel (WorkBook) jako DataSet. Użyj metody ToDataSet, aby przekształcić cały skoroszyt w DataSet.
W tym przykładzie zobaczymy, jak używać pliku Excel jako DataSet.

Jak przekonwertować workbook na DataSet?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-excel-to-dataset.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Convert the WorkBook to a DataSet
DataSet ds = workBook.ToDataSet();

// Iterate through tables in the DataSet and display table names
foreach (DataTable dt in ds.Tables)
{
    Console.WriteLine(dt.TableName);
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Convert the WorkBook to a DataSet
Dim ds As DataSet = workBook.ToDataSet()

' Iterate through tables in the DataSet and display table names
For Each dt As DataTable In ds.Tables
    Console.WriteLine(dt.TableName)
Next
$vbLabelText   $csharpLabel

Wynik powyższego kodu wygląda tak:

Uszkodzony lub niekompletny zrzut ekranu pokazujący tylko etykiety Sheet1, Sheet2, Sheet3

A plik Excel Sample.xlsx wygląda następująco:

(center content omitted for brevity)

Jak uzyskać dostęp do każdej wartości komórki we wszystkich arkuszach?

W powyższym przykładzie możemy łatwo przeanalizować plik Excel do formatu DataSet i pracować z każdym DataTable pliku Excel jako DataTable. Zapoznaj się głębiej z tym jak analizować Excel jako DataSet tutaj, zawierając przykłady kodu.

Zobaczmy jeszcze jeden przykład, jak uzyskać dostęp do wartości każdej komórki wszystkich ExcelSheets. W tym miejscu możemy uzyskać dostęp do wartości każdej komórki ExcelSheet w pliku Excel.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// TEN FRAGMENT KODU JEST NIEDOSTĘPNY!
' TEN FRAGMENT KODU JEST NIEDOSTĘPNY!
$vbLabelText   $csharpLabel

Korzystając z powyższego przykładu, można w wygodny sposób uzyskać dostęp do wartości każdej komórki ExcelSheet w pliku Excel. Takie podejście jest szczególnie przydatne w przypadku skoroszytów zawierających wiele arkuszy, w których dane są rozłożone na różnych kartach.

Więcej na temat tego, jak czytać pliki Excel bez Interop znajdziesz tutaj. Dokumentacja API referencyjnego dostarcza szczegółowe informacje o wszystkich dostępnych metodach i właściwościach w IronXL API Reference.


Szybki dostęp do samouczka

Referencja API dla IronXL

Przeczytaj więcej o funkcjach, klasach, polach metod, przestrzeniach nazw i wyliczeniach IronXL w dokumentacji.

Referencja API dla IronXL
Documentation related to Szybki dostęp do samouczka

WorkSheet

WorkSheet

WorkSheet

Często Zadawane Pytania

Jak odczytać pliki XLSX w języku C#?

Aby odczytać pliki XLSX w C#, użyj metody WorkBook.Load z IronXL. Po prostu załaduj plik Excel za pomocą IronXl.WorkBook.Load("twoj-plik.xlsx"), następnie uzyskaj dostęp do arkuszy, aby odczytywać dane komórek, wykonywać obliczenia i konwertować do formatu DataTable lub DataSet programowo.

Jakie formaty plików są obsługiwane podczas ładowania plików Excel?

IronXL obsługuje wiele formatów plików Excel, w tym .xls, .xlsx, .xlsm, .xltx i .csv. Metoda WorkBook.Load automatycznie wykrywa format pliku, co czyni ją wszechstronną zarówno dla starszych, jak i nowych plików Excel.

Jak mogę zainstalować bibliotekę do odczytywania Excel dla mojego projektu C#?

Możesz zainstalować IronXL zarówno poprzez bezpośrednie pobieranie, jak i przez NuGet Install dla Visual Studio. Oprogramowanie jest bezpłatne do celów deweloperskich i zapewnia prosty sposób pracy z formatami plików Excel w C#.

Jakie są różne sposoby uzyskania dostępu do konkretnego arkusza kalkulacyjnego?

IronXL oferuje wiele sposobów dostępu do arkuszy: możesz użyć workBook.GetWorkSheet("SheetName") do dostępu po nazwie, workBook.WorkSheets[0] do dostępu po indeksie lub workBook.WorkSheets.First() do pierwszego arkusza.

Czy mogę wykonywać obliczenia na danych Excel po ich załadowaniu?

Tak, po załadowaniu pliku XLSX z IronXL, możesz stosować różne funkcje, takie jak Sum, Min i Max na danych. Biblioteka zapewnia pełny dostęp do funkcjonalności plików Excel za pomocą obiektu WorkBook.

Czy możliwa jest konwersja danych z arkusza Excel na inne formaty?

Tak, IronXL pozwala na odczyt WorkSheet i konwersję do różnych formatów, w tym DataTable, DataSet i innych. To umożliwia łatwą integrację danych Excel z aplikacjami C#.

Curtis Chau
Autor tekstów technicznych

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ę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,052,917 | Wersja: 2026.6 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronXL.Excel
uruchom próbkę zobacz, jak Twoje dane stają się arkuszem.