Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak zarządzać zakresami w Excelu w języku C#

Praca z plikami Excel programistycznie moze znacznie zwiekszyc efektywnosc i mozliwosci automatyzacji Twoich aplikacji C#. Czy generujesz raporty, przetwarzasz dane czy tworzysz zlozone arkusze kalkulacyjne dynamicznie, opanowanie manipulacji plikami Excel jest kluczowe. W tym poradniku skupimy sie na pracy z zakresami Excel za pomoca IronXL. Omówimy, jak zapisac, odczytac i manipulowac zakresami w pliku Excel.

How to Read Excel Ranges in C

  1. Zainstaluj biblioteke IronXL do obslugi plików Excel.
  2. Zaladuj skoroszyt i okresl arkusz kalkulacyjny.
  3. Wybierz zakres komórek do odczytania.
  4. Wyodrebnij i odczytaj dane z okreslonego zakresu.

Czym jest IronXL?

IronXL jest wszechstronna biblioteka dla C#, ktora ulatwia prace z plikami Excel, oferujac szereg funkcji dla bezproblemowej integracji i manipulacji danymi z arkuszy kalkulacyjnych. Jej mozliwosci obejmuja odczytywanie, zapisywanie i modyfikowanie plików Excel bez koniecznosci instalacji Microsoft Excel, umozliwiajac kompatybilnosc krzyzowa.

IronXL ulatwia wyodrebnianie danych z komorek, zakresow lub calych arkuszy kalkulacyjnych, wraz z zaawansowanymi funkcjami, takimi jak formatowanie, stylowanie i formatowanie warunkowe. Dzieki wsparciu dla obliczen, formuł i analizy statystycznej, IronXL umozliwia programistom efektywna obsluge operacji Excel programistycznie, czyniac z tego nieodlaczne narzedzie dla automatyzacji zadan centrycznych danych w aplikacjach C#.

Getting Started with Excel Range of cells in C

Przede wszystkim musimy zainstalowac biblioteke IronXL w naszej aplikacji.

Zainstaluj pakiet NuGet IronXL

Mozesz zainstalowac IronXL przez menedzera pakietow NuGet za pomoca nastepujacego polecenia:

Install-Package IronXL.Excel

Powyższe polecenie zainstaluje IronXL z wszystkimi jego zaleznosciami.

Jak zarządzać zakresami w Excelu w C#: Rysunek 1

Dodaj przestrzen nazw

Dodaj nastepujaca przestrzen nazw na poczatku klasy Program.cs, lub gdziekolwiek chcesz uzywac metod IronXL.

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Zaladuj Excel Workbook

Bardzo pierwszym krokiem jest zaladowanie skoroszytu Excel. Nastepujacy kod zaladuje skoroszyt Excel w naszej aplikacji.

static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
static void Main(string[] args)
{
    // Load an existing Excel workbook
    var workbook = WorkBook.Load("test_excel.xlsx");

    // Retrieve the specified worksheet from the workbook
    var sheet = workbook.GetWorkSheet("Sheet1");
}
Shared Sub Main(ByVal args() As String)
	' Load an existing Excel workbook
	Dim workbook = WorkBook.Load("test_excel.xlsx")

	' Retrieve the specified worksheet from the workbook
	Dim sheet = workbook.GetWorkSheet("Sheet1")
End Sub
$vbLabelText   $csharpLabel

Pierwsza linia ładuje istniejacy skoroszyt Excel z pliku o nazwie "test_excel.xlsx". Druga linia pobiera arkusz o nazwie "Sheet1" z zaladowanego skoroszytu.

Bede uzywac nastepujacego pliku Excel przez cala te informacje.

Jak zarządzać zakresami w Excelu w C#: Rysunek 2

Odczytywanie danych z zakresu

Teraz, odczytajmy dane z okreslonych zakresow komorek.

// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
// Define a range from cell A2 to G10 in the worksheet
var range = sheet["A2:G10"];

// Iterate over each cell in the range and output its value
foreach (var item in range)
{
    Console.WriteLine(item);
}
' Define a range from cell A2 to G10 in the worksheet
Dim range = sheet("A2:G10")

' Iterate over each cell in the range and output its value
For Each item In range
	Console.WriteLine(item)
Next item
$vbLabelText   $csharpLabel

Pierwsza linia wybiera konkretny adres zakresu (A2 do G10) w arkuszu, umozliwiajac prace z wieloma komorkami Excel jednoczesnie. Pętla foreach (var item in range) iteruje po każdej komórce w obrębie tego zakresu komórek, umożliwiając efektywne przetwarzanie danych.

Używając Console.WriteLine(item);, kod drukuje wartość każdej komórki na konsolę, co ułatwia przeglądanie zawartości zakresu. To podejscie ulatwia obsluge danych i zwieksza czytelnosc kodu.

Uzywaj formuł Excel w zakresie

Wybiermy konkretny zakres i zaimplementujmy formuly Excel.

// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
// Define a range from cell F2 to F42 for statistical analysis
var range = sheet["F2:F42"];

// Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}");

// Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}");

// Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {(int)range.Avg()}");
Imports System

' Define a range from cell F2 to F42 for statistical analysis
Dim range = sheet("F2:F42")

' Output the minimum age within the range
Console.WriteLine($"Minimum Age: {range.Min()}")

' Output the maximum age within the range
Console.WriteLine($"Maximum Age: {range.Max()}")

' Output the average age, casting the average value to an integer
Console.WriteLine($"Average Age: {CInt(Math.Truncate(range.Avg()))}")
$vbLabelText   $csharpLabel

Kod var range = sheet["F2:F42"]; wybiera zakres komórek rozciągający się od F2 do F42, co ułatwia analizę statystyczną danych o wieku. Używając range.Min() i range.Max(), efektywnie oblicza minimalne i maksymalne wartości wieku w określonym zakresie, co pomaga w analizie demograficznej.

Dodatkowo, range.Avg() oblicza średni wiek, oferując wartościowe metryki statystyczne do interpretacji danych. To podejscie ulatwia zadania analizy danych, zapewniajac szybki dostep do istotnych informacji statystycznych dla podejmowania opartych decyzji.

Jak zarządzać zakresami w Excelu w C#: Rysunek 3

Odczytywanie danych z pojedynczej komorki

Przeczytajmy dane z jednej komorki.

// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
// Retrieve the value from cell B2 in the worksheet
var read_from_single_cell = sheet["B2"];

// Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");
' Retrieve the value from cell B2 in the worksheet
Dim read_from_single_cell = sheet("B2")

' Output the value in cell B2
Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}")
$vbLabelText   $csharpLabel

Kod var read_from_single_cell = sheet["B2"]; pobiera wartość przechowywaną w komórce B2 z arkusza. Korzystajac z tego podejscia, mozesz latwo uzyskac dostep do okreslonych wartosci komorek w pliku Excel.

Dzięki Console.WriteLine($"The Value in Cell B2 is: {read_from_single_cell}");, kod drukuje pobraną wartość odniesionych komórek na konsolę, co ułatwia weryfikację danych i debugowanie. To upraszcza proces pobierania i wyswietlania poszczegolnych wartosci komorek z plików Excel.

Jak zarządzać zakresami w Excelu w C#: Rysunek 4

Odczytywanie danych z calej kolumny

Odczytajmy dane z calej kolumny za pomoca indeksu.

// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
// Retrieve values from the column at index 2 (C column) 
var columnValues = sheet.GetColumn(2); // 2 is column index

// Iterate over each value in the column and output it
foreach (var columnValue in columnValues)
{
    Console.WriteLine(columnValue);
}
' Retrieve values from the column at index 2 (C column) 
Dim columnValues = sheet.GetColumn(2) ' 2 is column index

' Iterate over each value in the column and output it
For Each columnValue In columnValues
	Console.WriteLine(columnValue)
Next columnValue
$vbLabelText   $csharpLabel

Kod var columnValues = sheet.GetColumn(2); pobiera wszystkie wartości z kolumny znajdującej się w indeksie 2 (kolumna C) w arkuszu. To umozliwia efektywny dostep do wszystkich wartosci w okreslonej kolumnie arkusza Excel.

Poprzez pętlę foreach iterującą po columnValues, każda wartość w kolumnie jest drukowana na konsolę za pomocą Console.WriteLine(columnValue);. To podejscie ulatwia przetwarzanie i wyswietlanie danych kolumnowych z plikow Excel, usprawniajac zadania analizy danych.

Jak zarządzać zakresami w Excelu w C#: Rysunek 5

Alternatywnie, mozemy rowniez odczytac dane z kolumny, uzywajac nazwy kolumny zamiast indeksu. Rozważmy następujący przykład:

// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
// Retrieve values from the column with name "C"
var columnValues = sheet.GetColumn("C");
' Retrieve values from the column with name "C"
Dim columnValues = sheet.GetColumn("C")
$vbLabelText   $csharpLabel

W ten sposob mozemy okreslic kilka kolumn.

Odczytywanie danych z calego wiersza

Czytajmy dane z calego wiersza, uzywajac numerow wierszy.

// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
// Retrieve values from the row at index 1 (Row 2)
var rowValues = sheet.GetRow(1); // 1 is row index

// Iterate over each value in the row and output it
foreach (var rowValue in rowValues)
{
    Console.Write(rowValue + "  ");
}
' Retrieve values from the row at index 1 (Row 2)
Dim rowValues = sheet.GetRow(1) ' 1 is row index

' Iterate over each value in the row and output it
For Each rowValue In rowValues
	Console.Write(rowValue & "  ")
Next rowValue
$vbLabelText   $csharpLabel

Kod var rowValues = sheet.GetRow(1); pobiera wszystkie wartości z jednego wiersza znajdującego się w indeksie 1 (Wiersz 2) w arkuszu, umożliwiając efektywny dostęp do danych specyficznych dla wiersza. Poprzez pętlę foreach iterującą po rowValues, każda wartość w wierszu jest drukowana na konsolę za pomocą Console.Write(rowValue + " ");.

To podejscie upraszcza wyodrebnianie i wyswietlanie danych z wierszy plików Excel, pomagajac w analizie i raportowaniu danych. W ten sposob mozemy czytac wartosci z wielu komorek bez specyfikacji zakresu.

Jak zarządzać zakresami w Excelu w C#: Rysunek 6

Zapisywanie danych do komorki lub zakresu

Możemy zapisywać dane zarówno do komorki, jak i zakresu. Najpierw zapiszemy dane do zakresu.

// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
// Select a range from D2 to D14 for modification
var range = sheet["D2:D14"];

// Set the value for each cell in the range
range.Value = "Prefer Not to Say"; // Change Gender Value

// Save the modified workbook to persist changes
workbook.Save();
' Select a range from D2 to D14 for modification
Dim range = sheet("D2:D14")

' Set the value for each cell in the range
range.Value = "Prefer Not to Say" ' Change Gender Value

' Save the modified workbook to persist changes
workbook.Save()
$vbLabelText   $csharpLabel

Kod var range = sheet["D2:D14"]; wybiera zakres rozciągający się od komórki D2 do D14, umożliwiając zbiorową modyfikację danych. Ustawiając range.Value na "Preferuje nie mówić", efektywnie aktualizuje wartość płci dla każdej komórki w określonym zakresie, minimalizując powtarzające się zadania.

Kolejne polecenie workbook.Save(); zapewnia trwałe zachowanie tych zmian, utrzymując spójność i integralność danych. To podejscie upraszcza zbiorowe aktualizacje i zapewnia jednolitosc w wielu komorkach, zwiekszajac efektywnosc zarzadzania danymi.

Teraz zapiszmy dane w określonej komórce.

// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
// Set the value for cell B2
sheet["B2"].Value = "John";

// Save the workbook to persist the changes
workbook.Save();
' Set the value for cell B2
sheet("B2").Value = "John"

' Save the workbook to persist the changes
workbook.Save()
$vbLabelText   $csharpLabel

Kod sheet["B2"].Value = "John"; bezpośrednio przypisuje wartość "John" do komórki B2 w arkuszu Excel, oferując zwięzłą i prostą metodę aktualizacji wartości poszczególnych komórek. Takie podejście usprawnia proces modyfikacji zawartości poszczególnych komórek, poprawiając czytelność i wydajność kodu.

Jak zarządzać zakresami w Excelu w C#: Rysunek 7 - Zakres Excel w C#

Wnioski

Podsumowując, opanowanie operacji na zakresach w Excelu w języku C# przy użyciu IronXL znacznie zwiększa wydajność i możliwości automatyzacji aplikacji, ułatwiając zadania takie jak przetwarzanie danych, generowanie raportów i dynamiczne tworzenie arkuszy kalkulacyjnych.

Dzięki zaawansowanym funkcjom IronXL do odczytu, zapisu i manipulacji plikami Excel programiści mogą usprawnić procesy przetwarzania danych i wykorzystać zaawansowane funkcje, takie jak formuły, formatowanie i analiza statystyczna. Ponadto IronXL oferuje bezpłatną wersję próbną, zapewniając elastyczność i skalowalność dostosowaną do różnych wymagań projektowych.

Często Zadawane Pytania

Jak zacząć manipulować zakresami w Excelu w języku C#?

Aby rozpocząć manipulowanie zakresami w Excelu w języku C#, zainstaluj bibliotekę IronXL za pomocą menedżera pakietów NuGet, używając polecenia: Install-Package IronXL.Excel. Następnie możesz rozpocząć ładowanie skoroszytów Excel i pracę z zakresami przy użyciu kompleksowego interfejsu API IronXL.

Jak załadować skoroszyt Excel za pomocą IronXL?

W programie IronXL można załadować skoroszyt Excel za pomocą metody WorkBook.Load, przekazując nazwę pliku jako argument, na przykład: var workbook = WorkBook.Load('test_excel.xlsx');.

Jakie metody są dostępne do odczytu określonego zakresu komórek w IronXL?

W IronXL można odczytać określony zakres komórek, definiując go za pomocą składni takiej jak sheet['A2:G10'] i iterując po nim, aby uzyskać dostęp do wartości każdej komórki.

Jak przeprowadzić analizę statystyczną danych w zakresie arkusza Excel?

Korzystając z IronXL, można przeprowadzić analizę statystyczną, zaznaczając zakres i stosując metody takie jak range.Min(), range.Max() oraz range.Avg(), aby obliczyć odpowiednio wartości minimalną, maksymalną i średnią.

Jak wygląda proces zapisywania danych w konkretnej komórce przy użyciu IronXL?

Aby zapisać dane w określonej komórce w IronXL, należy przypisać wartość bezpośrednio do komórki, na przykład: sheet['B2'].Value = 'John';, a następnie zapisać skoroszyt, aby zachować zmiany.

Czy w IronXL mogę odczytać całą kolumnę danych bez określania zakresu?

Tak, IronXL pozwala odczytać całą kolumnę za pomocą sheet.GetColumn(index) lub sheet.GetColumn('C'), umożliwiając pobieranie danych przy użyciu indeksu lub nazwy kolumny.

Jak wyodrębnić dane z całego wiersza za pomocą IronXL?

Aby wyodrębnić dane z całego wiersza w IronXL, należy użyć funkcji sheet.GetRow(index) i iterować nad pobranymi wartościami, aby uzyskać dostęp do danych.

Jakie zaawansowane funkcje oferuje IronXL do obsługi arkuszy kalkulacyjnych Excel?

IronXL oferuje zaawansowane funkcje, takie jak formatowanie, stylizacja, formatowanie warunkowe oraz obsługę obliczeń i formuł, zwiększając możliwości manipulacji plikami Excel w aplikacjach C#.

Czy można wypróbować IronXL przed zakupem?

Tak, IronXL oferuje bezpłatną wersję próbną, która pozwala programistom zapoznać się z jego funkcjonalnościami i ocenić jego przydatność do swoich projektów bez ponoszenia żadnych początkowych kosztów.

W jaki sposób IronXL może usprawnić automatyzację w aplikacjach C#?

IronXL usprawnia automatyzację w aplikacjach C#, umożliwiając płynną manipulację plikami Excel za pomocą kodu, co jest niezbędne do zadań takich jak przetwarzanie danych, generowanie raportów i dynamiczne tworzenie arkuszy kalkulacyjnych, a wszystko to bez konieczności instalowania programu Microsoft Excel.

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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie