Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak otworzyć plik Excel i zapisać dane w C#

Ten artykuł przedstawi bibliotekę IronXL do demonstrowania jak otworzyć plik Microsoft Excel i zapisać do niego dane w aplikacji konsolowej C#.

IronXL - Biblioteka Excel

IronXL jest biblioteką Excel .NET, która ułatwia tworzenie, odczytywanie i edytowanie plików Excel w aplikacjach C#. Oferuje doskonałą wydajność i dokładne wyniki. Biblioteka obsługuje wszystkie formaty plików skoroszytów Excel, w tym XLS, XLSX, XLSM, CSV oraz TSV. Ponadto, umożliwia zapisywanie lub eksportowanie danych w formatach takich jak JSON, HTML, Binarny, Tablica Bajtów, DataSet lub DataTable.

Z IronXL, programisci moga pracowac z arkuszami kalkulacyjnymi oraz zakresami komorek bezproblemowo. Oferuje możliwość edycji formuł oraz łatwego przeliczania ich w arkuszu. Sortowanie danych na podstawie zakresu, kolumny lub wiersza jest proste. Biblioteka zapewnia funkcje modyfikacji układów, takie jak zamrażanie paneli, automatyczne dopasowanie wierszy/kolumn oraz dodawanie/usuwanie wierszy/kolumn.

IronXL także umożliwia ochronę plików Excel hasłami i uprawnieniami użytkownika do edycji. Inną godną uwagi funkcją jest możliwość dodawania, usuwania i wyodrębniania obrazów z arkuszy Excel. Biblioteka oferuje szeroki zakres funkcji Excel, wspierając różne formaty danych komórek. Te funkcje czynią IronXL jedną z najprzyjazniejszych użytkownikowi API do pracy z plikami Excel.

Jedną z istotnych zalet IronXL jest to, że nie wymaga instalacji Microsoft Excel na maszynie, eliminując potrzebę interakcji z pakietem Office lub jakichkolwiek innych zależności. Jest kompatybilny z wieloma platformami i obsługuje .NET 7, 6 i 5. Jest również kompatybilny z .NET Core 2 i 3, a także .NET Framework 4.5 i nowszymi wersjami do pracy z arkuszami Excel.

Utwórz aplikację konsolową

Zalecana jest najnowsza wersja IDE Visual Studio do tworzenia aplikacji. Visual Studio jest oficjalnym IDE do rozwoju C#, i zakłada się, że jest już zainstalowane. Jeśli jeszcze nie zainstalowałeś Visual Studio, można pobrać je z oficjalnej strony Microsoft Visual Studio.

Postępuj według tych kroków, aby utworzyć nowy projekt o nazwie 'DemoApp'.

  1. Otwórz Visual Studio i kliknij na 'Create a New Project'

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 1: Nowy projekt Nowy Projekt

  2. Wybierz 'Console Application' i kliknij 'Next'

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 2: Nowy typ projektu Nowy Typ Projektu

  3. Wprowadź nazwę Projektu

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 3: Nowa nazwa projektu Nowa Nazwa Projektu

  4. Wybierz wersję .NET. Wybierz stabilną wersję .NET 6.0.

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 4: Dodatkowe info o nowym projekcie Dodatkowe Informacje o Nowym Projekcie

Zainstaluj bibliotekę IronXL

Po utworzeniu projektu należy zainstalować bibliotekę IronXL, aby móc ją używać w projekcie. Postępuj zgodnie z tymi krokami, aby ją zainstalować.

  1. Otwórz 'Manage NuGet Packages for Solutions' z 'Solution Explorer' lub 'Tools'.

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 5: Menedżer pakietów NuGet Menedżer pakietów NuGet

  2. Wyszukaj Bibliotekę IronXL i wybierz bieżący projekt. Kliknij zainstaluj.

    Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 6: Wyszukaj i zainstaluj pakiet IronXL w Menedżerze pakietów NuGet Wyszukaj i zainstaluj pakiet IronXL w interfejsie użytkownika NuGet Package Manager

Dodaj następującą przestrzeń nazw na początku pliku Program.cs

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

Open an Existing Excel File in C

IronXL zapewnia mozliwosc otwarcia istniejacego pliku Excel lub utworzenia nowego pliku Excel. Ten przyklad zamierza otworzyc istniejacy plik za pomoca C# IronXL.

// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
$vbLabelText   $csharpLabel

Teraz wybierzmy jego pierwszy arkusz. Mozna wybrac arkusz za pomoca numeru indeksu lub przez nazwe. Właściwość DefaultWorkSheet może pomóc w uzyskaniu pierwszego arkusza.

// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)

' Select worksheet by name 
Dim ws As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Get any existing worksheet
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

Kod powyższy uzyskuje pierwszy arkusz ze skoroszytu Excel. Aby utworzyć nowy plik Excel z danymi, sprawdz ten przyklad kodu.

Teraz zapiszmy dane do pliku Excel korzystając z biblioteki obiektów IronXL.

Write Data to Excel File in C

Zapis danych do pliku Excel z użyciem IronXL jest bardzo prosty. Istnieje wiele sposobów na to, ale najprostszym sposobem jest użycie odwołania do komórki Excel.

// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"
$vbLabelText   $csharpLabel

Mozliwe jest rowniez zapisanie danych do zakresu komorek. Poniższy kod zapisuje dane od komórki B1 do B5.

// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"
$vbLabelText   $csharpLabel

Możemy również wypełnić zakres przy użyciu pętli for, czyniąc go dynamicznym. Kod wygląda następująco:

// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
' Specify range in which we want to write the values
For i As Integer = 1 To 5
	' Write the Dynamic value in column C
	workSheet("C" & i).Value = "Value: " & i

	' Write the Dynamic value in column D
	workSheet("D" & i).Value = "Value: " & i
Next i
$vbLabelText   $csharpLabel

Innym sposobem na zapisanie danych do pliku Excel jest użycie metody Replace.

// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")
$vbLabelText   $csharpLabel

Save an Excel File in C

Ta sekcja wyjaśnia, jak zapisać plik Excel z nowo zapisanymi treściami.

// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Pełny kod wygląda następująco:

using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Select worksheet at index 0
		Dim workSheet As WorkSheet = workBook.WorkSheets(0)

		' Access A1 cell and write the value
		workSheet("A1").Value = "Value using cell reference"

		' Write the same value to cells from B1 to B5
		workSheet("B1:B5").Value = "Range value"

		' Specify range in which we want to write the values
		For i As Integer = 1 To 5
			' Write the Dynamic value in column C
			workSheet("C" & i).Value = "Value: " & i

			' Write the Dynamic value in column D
			workSheet("D" & i).Value = "Value: " & i
		Next i

		' Replace the value in cell D5
		workSheet("D5").Replace("Value: 5", "Replaced Value")

		' Save the updated Excel workbook to a file
		workBook.SaveAs("sample.xlsx")
		Console.WriteLine("Successfully written to Excel File")
	End Sub
End Class
$vbLabelText   $csharpLabel

Dla bardziej szczegółowych informacji, jak odczytać dane z pliku Excel w C#, zapoznaj się z tym przykładem.

Wynik

Wyjsciowy plik to:

Jak otworzyć plik Excel i zapisać dane w C#, Rysunek 7: Plik Excel wyjściowy Plik Excel z wynikami

Podsumowanie

Ten artykuł pokazał, jak zapisać dane do plików Excel w C# z użyciem IronXL. IronXL umożliwia bezproblemową pracę z istniejącymi plikami Excel. Umożliwia także tworzenie nowych plików Excel i zapisywanie danych w łatwej składni. IronXL można również używać do odczytu plików Excel bez zainstalowanej aplikacji Microsoft Excel. Aby odczytać dane z plików Excel, możesz zobaczyć tę stronę przykładowego kodu.

IronXL jest bezpłatny do celów programistycznych, a na cele komercyjne można uzyskać licencję. Możesz również wypróbować darmowy okres próbny IronXL do użytku komercyjnego.

Często Zadawane Pytania

Jak otworzyć plik Excel w języku C# bez użycia Interop?

Możesz otworzyć plik Excel w języku C# bez użycia Interop, korzystając z biblioteki IronXL. IronXL pozwala na wydajną obsługę plików Excel bez konieczności instalowania programu Microsoft Excel, zwiększając wydajność i kompatybilność.

Jak zapisać dane w określonej komórce pliku Excel przy użyciu języka C#?

Korzystając z IronXL, można zapisać dane w określonej komórce pliku Excel, uzyskując dostęp do skoroszytu, wybierając arkusz, a następnie używając odwołań do komórek w celu przypisania wartości do wybranych komórek.

Jakie są zalety korzystania z IronXL w porównaniu z Office Interop do obsługi plików Excel?

IronXL oferuje kilka zalet w porównaniu z Office Interop, w tym brak zależności od instalacji programu Microsoft Excel, lepszą wydajność, kompatybilność międzyplatformową oraz obsługę różnych formatów plików Excel, takich jak XLS, XLSX i CSV.

Czy za pomocą tej biblioteki mogę edytować formuły w plikach Excel?

Tak, IronXL umożliwia edycję formuł w plikach Excel. Można modyfikować istniejące formuły lub wstawiać nowe przy użyciu prostej składni, którą biblioteka IronXL przetwarza wydajnie.

W jaki sposób IronXL obsługuje różne formaty plików Excel?

IronXL obsługuje wiele formatów plików Excel, takich jak XLS, XLSX, XLSM, CSV i TSV, umożliwiając płynne tworzenie, odczytywanie i edytowanie tych plików w aplikacji napisanej w języku C#.

Czy można zabezpieczyć plik Excel za pomocą IronXL?

Tak, IronXL oferuje funkcje ochrony plików Excel poprzez ustawianie haseł użytkowników i uprawnień, zapewniając bezpieczeństwo danych i kontrolowany dostęp.

Jak mogę zintegrować bibliotekę IronXL z moim projektem w języku C#?

Aby zintegrować IronXL z projektem C#, można użyć menedżera pakietów NuGet w Visual Studio. Wystarczy wyszukać IronXL i dodać go do projektu, aby zacząć korzystać z jego funkcji.

Jakie platformy obsługuje IronXL?

IronXL obsługuje wiele platform, w tym .NET 5, 6 i 7, a także .NET Core i Framework, co czyni go wszechstronnym wyborem dla różnych środowisk programistycznych.

Czy mogę korzystać z IronXL za darmo?

IronXL jest bezpłatny do celów programistycznych. Jednak do użytku komercyjnego wymagana jest licencja. Dostępna jest bezpłatna wersja próbna, umożliwiająca przetestowanie funkcji biblioteki IronXL w środowisku komercyjnym.

Jak mogę wyeksportować dane z Excela do formatu JSON za pomocą IronXL?

IronXL umożliwia eksportowanie danych z Excela do formatu JSON poprzez konwersję arkusza lub określonych zakresów danych na ciągi JSON, które następnie mogą być wykorzystywane w aplikacjach wymagających danych JSON.

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