Jak pisać do plików Excel w NET za pomocą C#

Funkcje zapisu Excel .NET w C# przy użyciu IronXL

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

Zapisuj dane Excel w C# używając IronXL, uzyskując dostęp do arkuszy, ustawiając wartości komórek prostą notacją z nawiasami i zapisując zmiany. Biblioteka obsługuje zapisywanie do określonych komórek, zakresów i programistyczne zastępowanie wartości bez skomplikowanego kodu.

Aplikacje C# często muszą aktualizować pliki i pisać nowe dane w arkuszach Excel programistycznie. Możliwości Excel .NET mogą być czasami skomplikowane, ale używając biblioteki IronXL, to zadanie jest proste i pozwala na pracę z arkuszami Excel w dowolnym formacie. Uzyskaj bezpośredni dostęp do konkretnych komórek i przypisz własne wartości za pomocą minimalnej ilości kodu. Niezależnie od tego, czy tworzysz nowe arkusze czy edytujesz istniejące pliki Excel, IronXL zapewnia intuicyjne metody dla wszystkich Twoich potrzeb automatyzacji Excel.

Szybki start: Zapisz wartość w konkretnej komórce

Ten przykład pokazuje, jak zapisać wartość do pojedynczej komórki używając IronXL i zapisać plik Excel w zaledwie kilku liniach.

  1. Install IronXL with NuGet Package Manager

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

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.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

Instrukcje pisania Excel .NET

  • Pobierz bibliotekę dla Excel .NET
  • Zapisuj wartości w konkretnych komórkach
  • Zapisuj statyczne wartości w wielu komórkach
  • Zapisuj dynamiczne wartości w zakresie komórek
  • Zastępuj wartości komórek w określonym wierszu, kolumnie, zakresie i nie tylko
How To Work related to Funkcje zapisu Excel .NET w C# przy użyciu IronXL

Jak uzyskać dostęp do plików Excel?

Zacznij od uzyskania dostępu do pliku Excel, w którym chcesz zapisać dane. Otwórz plik Excel w swoim projekcie, a następnie otwórz jego konkretny arkusz za pomocą poniższego kodu.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-load-file.cs
// Load Excel file in the project
WorkBook workBook = WorkBook.Load("path");
' Load Excel file in the project
Dim workBook As WorkBook = WorkBook.Load("path")
$vbLabelText   $csharpLabel

Powyższe otwiera określony plik Excel. Następnie uzyskaj dostęp do arkusza.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-get-sheet.cs
// Open Excel WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
' Open Excel WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

Arkusz Excel otwiera się w workSheet i możesz go użyć do zapisania dowolnego typu danych w pliku Excel. Dowiedz się więcej o tym, jak załadować pliki Excel i uzyskać dostęp do arkuszy na różne sposoby, przeglądając przykłady w podanym linku. Aby pracować z wieloma arkuszami, sprawdź nasz przewodnik dotyczący zarządzania arkuszami, który obejmuje dodawanie, zmienianie nazw i usuwanie arkuszy programistycznie.

Uwaga: Nie zapomnij dodać odwołania do IronXL w swoim projekcie i zaimportować bibliotekę przez użycie using IronXL.


Jak zapisać wartość w określonej komórce?

W pliku Excel możesz pisać używając wielu różnych metod, ale podstawowe podejście wykorzystuje ExcelCell. Do tego celu można uzyskać dostęp do dowolnej komórki otwartego arkusza Excel i zapisać w niej wartość w następujący sposób.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell.cs
workSheet["Cell Address"].Value="Assign the Value";
workSheet("Cell Address").Value="Assign the Value"
$vbLabelText   $csharpLabel

Oto przykład, jak użyć powyższej funkcji do zapisu w komórce Excel w swoim projekcie C#.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-full.cs
using IronXL;

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

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

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

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access A1 cell and write the value
Private workSheet("A1").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Ten kod zapisuje new value w komórce A1 arkusza Sheet1 w pliku Excel sample.xlsx. W ten sam sposób możesz wstawiać wartości do dowolnego adresu komórki w pliku Excel. Dla bardziej zaawansowanych opcji formatowania, takich jak ustawianie czcionek i rozmiarów komórek lub stosowanie kolorów i wzorców tła, IronXL oferuje szerokie możliwości stylizacji.

Uwaga: Nie zapomnij zapisać pliku Excel po zapisaniu nowych wartości w arkuszu, jak pokazano w powyższym przykładzie.

Dlaczego warto wymuszać przypisanie dokładnych wartości?

Podczas ustawiania właściwości Value, IronXL próbuje przekonwertować ją na odpowiadający typ wartości. Czasami ta ocena jest niepożądana, gdyż chcesz wymusić przypisanie dokładnej wartości do komórki bez konwersji. Aby to zrobić, przypisz wartość jako ciąg znaków. W IronXL po prostu użyj StringValue zamiast Value, aby osiągnąć ten sam efekt.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
$vbLabelText   $csharpLabel

Jak zapisać statyczne wartości w zakresie?

Możesz zapisać nowe wartości w wielu komórkach w zakresie, jak poniżej:

// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
' Assign a static value to a range of cells
worksheet("B2:C5").Value = "static value"
$vbLabelText   $csharpLabel

W ten sposób wskazujesz zakres komórek od From do To, gdzie dane będą zapisywane. new value zostanie zapisany we wszystkich komórkach w tym zakresie. Aby zrozumieć więcej o zakresie Excel w C#, sprawdź przykłady tutaj.

Zobacz, jak zapisać zakres w praktyce na poniższym przykładzie.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range-full.cs
using IronXL;

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

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range row wise and write new value
workSheet["B2:B9"].Value = "new value";

// Specify range column wise and write new value
workSheet["C3:C7"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range row wise and write new value
Private workSheet("B2:B9").Value = "new value"

' Specify range column wise and write new value
Private workSheet("C3:C7").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Ten kod zapisuje new value od B2 do B9 w kolumnie B, i od C3 do C7 w kolumnie C arkusza Sheet1 w pliku Excel sample.xlsx. Używa wartości statycznych dla komórek Excel.


Jak zapisać dynamiczne wartości w zakresie?

Możesz też dodać dynamiczne wartości do zakresu, jak pokazano poniżej. To jest szczególnie przydatne, gdy potrzebujesz wypełniać dane z bazy danych lub podczas generowania raportów. Możesz również zainteresować się importem i eksportem jako DataSet dla bardziej złożonych operacji danych.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-dynamic-value.cs
using IronXL;

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

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range in which we want to write the values
for (int i = 2; i <= 7; i++)
{
    // Write the Dynamic value in one row
    workSheet["B" + i].Value = "Value" + i;

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

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range in which we want to write the values
For i As Integer = 2 To 7
	' Write the Dynamic value in one row
	workSheet("B" & i).Value = "Value" & i

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

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Powyższy kod zapisuje dynamiczne wartości w kolumnach B od 2 do 7 w pliku Excel sample.xlsx. Możesz zobaczyć wynik kodu na sample.xlsx.

Arkusz kalkulacyjny pokazujący dwa wyróżnione zakresy B2:B7 i D2:D7 wypełnione wartościami od Value2 do Value7

Jak zastąpić wartości komórek Excel?

Używając IronXL, możesz łatwo zapisać nową wartość, zastępując starą wartość, używając funkcji Replace() w następujący sposób:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace.cs
workSheet.Replace("old value", "new value");
workSheet.Replace("old value", "new value")
$vbLabelText   $csharpLabel

Powyższa funkcja zapisuje new value nadpisując old value w całym arkuszu Excel.

Jak zastąpić wartości w konkretnym wierszu?

Jeśli chcesz zapisać nową wartość tylko w jednym konkretnym wierszu, postępuj w następujący sposób:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-row.cs
workSheet.Rows[RowIndex].Replace("old value", "new value");
workSheet.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

To zapisuje new value ponad old value tylko w określonym indeksie wiersza.

Jak zastąpić wartości w konkretnej kolumnie?

Podobnie, jeśli chcesz zapisać new value nad old value w określonej kolumnie, postępuj w następujący sposób:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-column.cs
workSheet.Columns[ColumnIndex].Replace("old value", "new value");
workSheet.Columns(ColumnIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

Powyższy kod zapisuje new value zastępując old value, ale tylko w określonym indeksie kolumny. Reszta arkusza pozostaje niezmieniona.

Jak zastąpić wartości w określonym zakresie?

IronXL również zapewnia możliwość zapisania new value zastępując old value tylko w określonym zakresie. To jest pomocne, gdy pracujesz z konkretnymi obszarami danych lub gdy potrzebujesz zaktualizować wartości w określonej części arkusza. Dla bardziej zaawansowanych operacji na zakresach, zobacz nasz przewodnik dotyczący sortowania zakresów komórek.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-range.cs
workSheet["From Cell Address : To Cell Address"].Replace("old value", "new value");
workSheet("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

To zapisuje new value nad old value tylko w komórkach w określonym zakresie.

Zobacz przykład, jak użyć wszystkich powyższych funkcji, aby zapisać nowe wartości zastępujące stare wartości w arkuszu Excel.

Jak wygląda kompletny przykład zastąpienia?

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-full.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Write new above old in complete WorkSheet
workSheet.Replace("old", "new");

// Write new above old just in row no 6 of WorkSheet
workSheet.Rows[5].Replace("old", "new");

// Write new above old just in column no 5 of WorkSheet
workSheet.Columns[4].Replace("old", "new");

// Write new above old just from A5 to H5 of WorkSheet
workSheet["A5:H5"].Replace("old", "new");

workBook.SaveAs("sample.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Write new above old in complete WorkSheet
workSheet.Replace("old", "new")

' Write new above old just in row no 6 of WorkSheet
workSheet.Rows(5).Replace("old", "new")

' Write new above old just in column no 5 of WorkSheet
workSheet.Columns(4).Replace("old", "new")

' Write new above old just from A5 to H5 of WorkSheet
workSheet("A5:H5").Replace("old", "new")

workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Dla więcej informacji o tym, jak pisać aplikacje Excel .NET i więcej, zapoznaj się z naszym pełnym tutorialem, jak Otworzyć i Pisać Pliki Excel w C#. Jeśli pracujesz z różnymi formatami plików, możesz również znaleźć nasz przewodnik dotyczący konwersji typów plików arkuszy kalkulacyjnych pomocny.


Szybki dostęp do samouczka

Przeczytaj Dokumentację API

Przeczytaj dokumentację IronXL, w tym listy wszystkich funkcji, cech, przestrzeni nazw, klas i wyliczeń dostępnych w bibliotece.

Przeczytaj Dokumentację API
Documentation related to Szybki dostęp do samouczka

Często Zadawane Pytania

Jak napisać wartość do konkretnej komórki w pliku Excel używając C#?

Z IronXL, można pisać do konkretnej komórki, po prostu uzyskując do niej dostęp za pomocą notacji w nawiasach i ustawiając jej właściwość Value. Na przykład: worksheet["A1"].Value = "Hello, IronXL!"; potem zapisać skoroszyt za pomocą workbook.SaveAs("output.xlsx"). To proste podejście eliminuje potrzebę skomplikowanego kodu interop Excel.

Jaki jest pierwszy krok do programowego pisania danych do pliku Excel?

Pierwszym krokiem jest załadowanie pliku Excel używając metody WorkBook.Load() IronXL, a następnie uzyskuj dostęp do konkretnego arkusza, gdzie chcesz pisać dane. IronXL sprawia, że to proste dzięki intuicyjnym metodom, które pozwalają na otwieranie dowolnego formatu Excel i natychmiastowe rozpoczęcie pracy z komórkami i zakresami.

Czy mogę pisać dane do wielu komórek naraz w Excelu?

Tak, IronXL wspiera efektywne pisanie do wielu komórek. Można wpisywać statyczne wartości do wielu konkretnych komórek osobno lub używać zakresów komórek do pisania dynamicznych wartości w wielu komórkach programowo. Biblioteka zapewnia metody zarówno dla operacji na pojedynczych komórkach, jak i pisania danych seryjnych.

Jak zastąpić istniejące wartości komórek w arkuszu kalkulacyjnym Excel?

IronXL pozwala na zastępowanie wartości komórek, po prostu uzyskując do nich dostęp i przypisując nową wartość. Można zastąpić wartości w konkretnych wierszach, kolumnach lub zakresach. Biblioteka automatycznie obsługuje nadpisywanie istniejących danych, gdy przypisujesz nowe wartości komórkom.

Jakie formaty plików Excel są obsługiwane do pisania danych?

IronXL wspiera pisanie do wszystkich głównych formatów plików Excel, w tym .xlsx, .xls, .xlsm, i pliki CSV. Biblioteka automatycznie obsługuje specyficzne dla formatu wymagania, pozwalając na pracę z arkuszami Excel w dowolnym formacie bez zmiany podejścia kodowego.

Czy muszę mieć zainstalowany Microsoft Excel, by pisać pliki Excel w C#?

Nie, IronXL działa niezależnie bez potrzeby posiadania Microsoft Excel lub Office Interop. To autonomiczna biblioteka .NET, która może czytać, pisać i tworzyć pliki Excel programowo na każdym systemie, co czyni ją idealną dla aplikacji serwerowych i środowisk, gdzie Excel nie jest zainstalowany.

Jak zapisać zmiany po zapisaniu danych do pliku Excel?

Po zapisaniu danych w komórkach, zapisz swoje zmiany używając metody SaveAs() IronXL, aby utworzyć nowy plik lub Save() aby nadpisać istniejący plik. Biblioteka zapewnia, że wszystkie twoje aktualizacje komórek, formatowanie i formuły są prawidłowo zapisane w formacie pliku Excel, który określisz.

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.