Jak importować pliki Excel w języku C

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

IronXL umożliwia programistom C# importowanie danych z Excela za pomocą zaledwie jednej linii kodu, obsługując formaty XLSX, CSV i inne bez zależności od Interop, co pozwala na natychmiastowy dostęp do komórek, zakresów i arkuszy w celu manipulacji danymi.

Szybki start: Natychmiastowe wczytanie pliku Excel

Wystarczy jedno wywołanie metody przy użyciu interfejsu API IronXL bez limitu czasu, aby w ciągu kilku sekund załadować dowolny obsługiwany arkusz Excel (XLSX, CSV itp.) — bez Interop, bez kłopotów. Rozpocznij pracę z skoroszytem od razu, uzyskując dostęp do komórek, zakresów lub arkuszy w zależności od potrzeb.

  1. Install IronXL with NuGet Package Manager

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

    WorkBook wb = IronXl.WorkBook.Load("path/to/data.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

Importowanie danych z Excela w języku C#

  • Importowanie danych za pomocą biblioteki IronXL
  • Importowanie danych z Excela w języku C#
  • Importuj dane z określonego zakresu komórek
  • Importuj dane z Excela za pomocą funkcji agregujących SUM, AVG, MIN, MAX i innych
How To Work related to Jak importować pliki Excel w języku C

Krok 1

Instalacja biblioteki IronXL

IronXL ułatwia importowanie danych z Excela

Zaimportuj dane za pomocą funkcji udostępnianych przez bibliotekę IronXL Excel, z której będziemy korzystać w tym samouczku. Oprogramowanie jest dostępne bezpłatnie do celów programistycznych. IronXL zapewnia kompleksowy interfejs API C# dla programu Excel, który upraszcza pracę z plikami Excel bez konieczności korzystania z pakietu Microsoft Office lub zależności Interop. Dzięki temu idealnie nadaje się do środowisk serwerowych i wdrożeń w chmurze.

Metody instalacji

Zainstaluj w swoim projekcie C# poprzez pobranie pliku DLL lub skorzystaj z pakietu NuGet. Szczegółowe wskazówki dotyczące instalacji znajdziesz w naszym przewodniku dla początkujących.

Install-Package IronXl.Excel

Poradnik "Jak to zrobić"

Dostęp do arkusza w projekcie

Podstawowy proces ładowania skoroszytu

Na potrzeby naszego dzisiejszego projektu zaimportujemy dane z Excela do naszej aplikacji C# przy użyciu oprogramowania IronXL zainstalowanego w kroku 1. Biblioteka obsługuje różne formaty Excela i zapewnia intuicyjne metody ładowania arkuszy kalkulacyjnych.

Na kroku 2 załadujemy nasz Excel WorkBook w naszym projekcie CSharp, korzystając z funkcji WorkBook.Load() biblioteki IronXL. W tej funkcji przekazujemy ścieżkę do skoroszytu Excel jako parametr typu string:

// Load Excel file
WorkBook wb = WorkBook.Load("Path");
// Load Excel file
WorkBook wb = WorkBook.Load("Path");
' Load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
$vbLabelText   $csharpLabel

Plik Excel w określonej ścieżce zostanie załadowany do wb. Ta metoda obsługuje formaty XLSX, XLS, CSV, TSV i inne popularne formaty arkuszy kalkulacyjnych.

Dostęp do konkretnego arkusza

Następnie musimy uzyskać dostęp do konkretnego arkusza w pliku Excel, którego dane zostaną zaimportowane do projektu. Do tego celu możemy użyć funkcji GetWorkSheet() biblioteki IronXL, przekazując nazwę arkusza jako parametr typu string, aby wskazać, który arkusz WorkBook zaimportować. Dowiedz się więcej o zarządzaniu arkuszami w naszym obszernym przewodniku.

// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
' Specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
$vbLabelText   $csharpLabel

Arkusz zostanie zaimportowany jako ws, a wb to WorkBook, który zdefiniowaliśmy w przykładzie kodu powyżej.

Alternatywne metody uzyskiwania dostępu do arkuszy kalkulacyjnych

Istnieją następujące alternatywne sposoby importowania arkusza Excel do projektu. Każda metoda zapewnia elastyczność w zależności od konkretnego przypadku użycia:

// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
' Import WorkSheet by various methods

' by sheet indexing
Dim mySheet As WorkSheet = wb.WorkSheets(SheetIndex)

' get default WorkSheet
Dim defaultSheet As WorkSheet = wb.DefaultWorkSheet

' get first WorkSheet
Dim firstSheet As WorkSheet = wb.WorkSheets.First()

' for the first or default sheet
Dim firstOrDefaultSheet As WorkSheet = wb.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

Teraz możemy z łatwością importować dowolny typ danych z określonych plików Excel. Przyjrzyjmy się wszystkim możliwym aspektom importowania danych z plików Excel do naszego projektu.


Importowanie danych z Excela w języku C

Podstawowa metoda importowania komórek

Jest to podstawowy aspekt importowania danych z pliku Excel do naszego projektu. IronXL oferuje wiele sposobów uzyskiwania dostępu do danych komórek, dzięki czemu jest elastyczny w różnych scenariuszach.

W tym celu możemy użyć systemu adresowania komórek, aby określić, które dane komórek musimy zaimportować. Zwraca wartość określonego adresu komórki z pliku Excel:

var cellValue = ws["Cell Address"];
var cellValue = ws["Cell Address"];
Dim cellValue = ws("Cell Address")
$vbLabelText   $csharpLabel

Importowanie danych przy użyciu indeksów wierszy i kolumn

Możemy również importować dane komórek z plików Excel, korzystając z indeksów wierszy i kolumn. Ta linia kodu zwraca wartość określonego indeksu wiersza i kolumny. Takie podejście jest szczególnie przydatne podczas iteracji danych programowo:

var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)
$vbLabelText   $csharpLabel

Przechowywanie zaimportowanych wartości w zmiennych

Aby przypisać wartości z importowanych komórek do zmiennych, użyj tego kodu. Metoda ToString() zapewnia zgodność ze zmiennymi typu string, ale w razie potrzeby można również wykonać rzutowanie na inne typy:

// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
' Import Data by Cell Address
' by cell addressing
Dim val As String = ws("Cell Address").ToString()

' by row and column indexing
Dim valWithIndexing As String = ws.Rows(RowIndex).Columns(ColumnIndex).Value.ToString()

' for numeric values
Dim numericValue As Decimal = ws("B2").DecimalValue

' for date values
Dim dateValue As DateTime = ws("C2").DateTimeValue
$vbLabelText   $csharpLabel

W powyższych przykładach indeksy wierszy i kolumn zaczynają się od 0. Aby uzyskać więcej informacji na temat zaawansowanych operacji na komórkach, zapoznaj się z naszym przewodnikiem dotyczącym czyszczenia i kopiowania komórek.


Importowanie danych z określonego zakresu

Składnia funkcji zakresu

To import data in a specific range from an Excel WorkBook, use the range function. Zdefiniuj zakres, opisując adresy komórek początkowej i końcowej. Zwraca wszystkie wartości komórek w określonym zakresie. Aby zapoznać się z kompleksowymi technikami doboru zakresu, zapoznaj się z naszym przewodnikiem dotyczącym doboru zakresu.

var rangeData = ws["Starting Cell Address:Ending Cell Address"];
var rangeData = ws["Starting Cell Address:Ending Cell Address"];
Dim rangeData = ws("Starting Cell Address:Ending Cell Address")
$vbLabelText   $csharpLabel

Przykład importu pełnego zakresu

Aby uzyskać więcej informacji na temat pracy z zakresami w plikach Excel oraz dowiedzieć się więcej o pobieraniu danych różnymi metodami. Poniższy przykład ilustruje importowanie zarówno wartości poszczególnych komórek, jak i zakresów:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.cs
using IronXL;
using System;

// Import Excel WorkBook
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import data of specific cell
string val = ws["A4"].Value.ToString();
Console.WriteLine("Import Value of A4 Cell address: {0}", val);

Console.WriteLine("import Values in Range From B3 To B9 :\n");

// Import data in specific range
foreach (var item in ws["B3:B9"])
{
    Console.WriteLine(item.Value.ToString());
}

Console.ReadKey();
Imports IronXL
Imports System

' Import Excel WorkBook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")

' Specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Import data of specific cell
Dim val As String = ws("A4").Value.ToString()
Console.WriteLine("Import Value of A4 Cell address: {0}", val)

Console.WriteLine("import Values in Range From B3 To B9 :" & vbCrLf)

' Import data in specific range
For Each item In ws("B3:B9")
    Console.WriteLine(item.Value.ToString())
Next

Console.ReadKey()
$vbLabelText   $csharpLabel

Powyższy kod wyświetla następujący wynik:

Wynik wyświetlony w konsoli pokazujący wyniki importu zakresu B3:B9 z Excela z wartością Midmarket i listą krajów, w tym Niemcy, Meksyk, Kanada

With the values of Excel file sample.xlsx as:

Arkusz kalkulacyjny Excel z danymi dotyczącymi sprzedaży, w którym komórki zaznaczone na niebiesko służą do wyboru zakresu podczas procesu importowania

Importowanie danych z Excela przy użyciu funkcji agregujących

Dostępne funkcje agregujące

Zastosuj funkcje agregujące do plików Excel i zaimportuj dane wynikowe z tych funkcji. IronXL oferuje wbudowane funkcje matematyczne, które ułatwiają analizę danych. Oto przykłady różnych funkcji i ich zastosowań:

  • Sum()

    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    ' To find the sum of a specific cell range
    Dim sum = ws("Starting Cell Address:Ending Cell Address").Sum()
    $vbLabelText   $csharpLabel
  • Average()

    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    ' To find the average of a specific cell range
    Dim average = ws("Starting Cell Address:Ending Cell Address").Avg()
    $vbLabelText   $csharpLabel
  • Min()

    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    ' To find the minimum in a specific cell range
    Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min()
    $vbLabelText   $csharpLabel
  • Max()

    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    ' To find the maximum in a specific cell range
    Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max()
    $vbLabelText   $csharpLabel

Wspólne używanie wielu funkcji agregujących

Dowiedz się więcej o pracy z funkcjami agregującymi w Excelu dla języka C# oraz o różnych metodach pobierania danych. Funkcje te są szczególnie przydatne do generowania statystyk podsumowujących lub sprawdzania poprawności importowanych danych.

Zobacz przykład importowania danych z pliku Excel przy użyciu tych funkcji:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-math-functions.cs
using IronXL;
using System;

// Import Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel file data by applying aggregate functions
decimal sum = ws["D2:D9"].Sum();
decimal avg = ws["D2:D9"].Avg();
decimal min = ws["D2:D9"].Min();
decimal max = ws["D2:D9"].Max();

Console.WriteLine("Sum From D2 To D9: {0}", sum);
Console.WriteLine("Avg From D2 To D9: {0}", avg);
Console.WriteLine("Min From D2 To D9: {0}", min);
Console.WriteLine("Max From D2 To D9: {0}", max);

Console.ReadKey();
Imports IronXL
Imports System

' Import Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")

' Specify WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Import Excel file data by applying aggregate functions
Dim sum As Decimal = ws("D2:D9").Sum()
Dim avg As Decimal = ws("D2:D9").Avg()
Dim min As Decimal = ws("D2:D9").Min()
Dim max As Decimal = ws("D2:D9").Max()

Console.WriteLine("Sum From D2 To D9: {0}", sum)
Console.WriteLine("Avg From D2 To D9: {0}", avg)
Console.WriteLine("Min From D2 To D9: {0}", min)
Console.WriteLine("Max From D2 To D9: {0}", max)

Console.ReadKey()
$vbLabelText   $csharpLabel

Powyższy kod daje nam następujący wynik:

Wynik wyświetlany w konsoli pokazujący funkcje agregujące programu Excel: Suma=452, Średnia=56,5, Min=5, Maks=350 dla zakresu komórek od D2 do D9

A nasz plik sample.xlsx zawiera te wartości:

Arkusz kalkulacyjny Excel z danymi sprzedaży, w którym kolumna

Importowanie danych z całego pliku Excel

Metoda ToDataSet

Aby zaimportować kompletne dane z pliku Excel do projektu C#, należy najpierw przeanalizować załadowany skoroszyt do zestawu danych (DataSet). W ten sposób kompletne dane z Excela są importowane do zestawu danych (DataSet), a arkusze w plikach Excela stają się tabelami danych (DataTables) w ramach tego zestawu danych. Takie podejście jest szczególnie przydatne w przypadku operacji na bazach danych lub podczas pracy z kontrolkami powiązanymi z danymi. Dowiedz się więcej o importowaniu i eksportowaniu jako DataSet.

// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
' Import WorkBook into DataSet
Dim ds As DataSet = wb.ToDataSet()
$vbLabelText   $csharpLabel

Powoduje to zaimportowanie określonego arkusza roboczego do zestawu danych (DataSet) w celu wykorzystania zgodnie z wymaganiami. Ta metoda jest szczególnie przydatna podczas pracy z wieloma arkuszami jednocześnie lub podczas integracji danych z Excela z operacjami ADO.NET.

Postępowanie z nagłówkami kolumn

Często pierwszy wiersz pliku Excel służy jako nazwy kolumn. W tym przypadku pierwszy wiersz powinien zawierać nazwy kolumn tabeli danych. Ustaw parametr boolean funkcji ToDataSet() biblioteki IronXL w następujący sposób:

// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
' Import WorkBook into DataSet with first row as ColumnNames
Dim ds As DataSet = wb.ToDataSet(True)
$vbLabelText   $csharpLabel

To sprawia, że pierwszy wiersz pliku Excel jest nazwami kolumn DataTable, co jest kluczowe dla zachowania integralności struktury danych podczas pracy z ustrukturyzowanymi danymi Excel.

Przykład kompletnego importu DataSet

Zobacz kompletny przykład importu danych Excel do DataSet i używania pierwszego wiersza arkusza Excel jako nazw kolumn DataTable:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.cs
using IronXL;
using System;
using System.Data;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel data into a DataSet
DataSet ds = wb.ToDataSet(true);

Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
Imports IronXL
Imports System
Imports System.Data

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Import Excel data into a DataSet
Dim ds As DataSet = wb.ToDataSet(True)

Console.WriteLine("Excel file data imported to dataset successfully.")
Console.ReadKey()
$vbLabelText   $csharpLabel

Praca z funkcjami Excel Dataset i DataTable może być skomplikowana, ale mamy więcej przykładów dostępnych na temat integracji danych z plików w twoim projekcie C#. W złożonych sytuacjach rozważ zapoznanie się z naszymi przewodnikami na temat Excel do SQL za pomocą DataTable i ładowania Excel z bazy danych SQL.


Szybki dostęp do biblioteki

Zapoznaj się z dokumentacją IronXL

Dowiedz się więcej o pobieraniu danych Excel przez komórki, zakresy, zbiory danych i tabele danych w naszej pełnej dokumentacji API Reference dla IronXL.

Zapoznaj się z dokumentacją IronXL
Documentation related to Szybki dostęp do biblioteki

Często Zadawane Pytania

Jak zaimportować plik Excel w C# bez użycia Microsoft Office?

Możesz zaimportować pliki Excel w C# używając IronXL, które nie wymaga Microsoft Office ani zależności Interop. Po prostu użyj metody WorkBook.Load() z twoją ścieżką pliku, np.: WorkBook wb = WorkBook.Load("path/to/data.xlsx"). To działa z formatami XLSX, XLS, CSV, TSV i innymi.

Jakie formaty plików Excel mogę zaimportować z tą biblioteką C#?

IronXL obsługuje importowanie różnych formatów Excel, w tym XLSX, XLS, CSV, TSV i inne popularne formaty arkuszy. Ta sama metoda WorkBook.Load() obsługuje wszystkie te formaty automatycznie.

Czy możliwe jest importowanie danych Excel na serwery lub środowiska chmurowe?

Tak, IronXL jest idealne do środowisk serwerowych i wdrażania w chmurze, ponieważ nie wymaga Microsoft Office ani zależności Interop. To czyni go idealnym dla aplikacji webowych, funkcji Azure i innych scenariuszy po stronie serwera.

Jak szybko mogę zacząć pracować z danymi Excel po zaimportowaniu?

Dzięki API bez ograniczeń czasowych IronXL, możesz załadować dowolny obsługiwany arkusz Excel w kilka sekund za pomocą tylko jednej linii kodu. Po użyciu WorkBook.Load() możesz natychmiast rozpocząć interakcję z komórkami, zakresami lub arkuszami.

Czy mogę zaimportować konkretne zakresy komórek z plików Excel?

Tak, IronXL pozwala na import danych z konkretnych zakresów komórek po załadowaniu skoroszytu. Możesz uzyskać dostęp do poszczególnych komórek, zakresów lub całych arkuszy za pomocą intuicyjnego API.

Jak zainstalować bibliotekę importującą Excel dla C#?

Możesz zainstalować IronXL poprzez menedżera pakietów NuGet lub pobierając DLL bezpośrednio. Biblioteka dostępna jest za darmo do rozwoju i zapewnia kompleksową dokumentację do rozpoczęcia pracy.

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 1,950,735 | Wersja: 2026.4 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.