寫入Excel .NET功能

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

許多C#應用程式專案需要我們以程式方式更新文件和寫入新的數據至Excel試算表。Excel .NET的功能有時候可能會很複雜,但使用IronXL庫這項任務就變得非常簡單,並且允許操作任意格式的Excel試算表。不需要大量程式碼,只需訪問特定的儲存格和指定的自訂值。

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 Excel

安裝與 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronXLNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變Excel。

C# NuGet 程式庫用于 Excel nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

請考慮安裝 IronXL DLL 直接下載並手動安裝到您的專案或GAC表單: IronXL.zip

手動安裝到您的項目中

下載DLL

訪問 Excel 文件

讓我們從訪問我們想要寫入數據的 Excel 文件開始。使用以下代碼在我們的項目中開啟 Excel 文件,然後打開其特定的工作表。

: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")
VB   C#

上述步驟將會開啟指定的 Excel 文件。接下來是工作表。

: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")
VB   C#

Excel工作表將在 workSheet 中打開,我們可以使用它在Excel文件中撰寫任何類型的數據。了解更多有關如何 加載 Excel 文件 通過鏈接中的範例以不同方式訪問類型和工作表。

請注意:別忘了在你的專案中加入 IronXL 的引用,並使用 Using IronXL 來引入庫。


在特定儲存格中寫入數值

我們可以使用多種方法在 Excel 檔案中寫入內容,但基本方法是使用 Excel Cell。為此,可以訪問已打開的 Excel 工作表的任何儲存格,並按如下方式在其中寫入數值:

: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"
VB   C#

以下是一個在我們的C#項目中使用上述函數在Excel單元格中寫入的範例。

: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")
VB   C#

這段程式碼會在 Excel 文件 sample.xlsx 的 WorkSheet Sheet1A1 單元格中寫入 new value。同樣的方式,我們可以在 Excel 檔案的任何單元格地址中插入值。

注意:在將新值寫入工作表後,請不要忘記保存 Excel 文件,如上例所示。

強制分配確切的值

在設置 Value 屬性時,IronXL 會嘗試將其轉換為相應的值類型。有時,這種評估是不希望的,因為使用者希望強制將確切的值分配給單元格,而不是轉換後的值。解決這個問題的方法是將值設為字串。在 Excel 中,這可以通過在單元格值前放置一個撇號來完成。在 IronXL 中,只需使用 StringValue 代替 Value 即可實現同樣的效果。

: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"
VB   C#

在範圍內寫入靜態值

我們可以按照以下方式在多個單元格(稱為範圍)中寫入新值:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range.cs
workSheet["From Cell Address:To Cell Address"].Value = "New Value";
workSheet("From Cell Address:To Cell Address").Value = "New Value"
VB   C#

這樣一來,我們可以指定從 FromTo 的儲存格範圍,資料將被寫入這些儲存格中。之後,New Value 將會寫入該範圍內的所有儲存格。如需更多瞭解 C# Excel 範圍 查看此處的範例。

讓我們看看如何使用下面的範例來撰寫一個範圍。

: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")
VB   C#

此代碼會將 new valueB2 寫入 B9 (按行範圍) 並從 C3C7 (列範圍) Excel 檔案 sample.xlsx 的工作表 sheet1。 它使用了 Excel 儲存格的靜態值。


在範圍內寫入動態值

我們也可以在範圍內添加動態值,如下所示。

: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")
VB   C#

上述程式碼將在 Excel 檔案 sample.xlsx 的第 2 至第 7 行的 BD 列寫入動態值。我們可以在 sample.xlsx 上看到程式碼的結果:


更換Excel單元格值

使用IronXL,我們可以輕鬆地寫入新值來替換舊值,使用Replace()函數如下:

: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")
VB   C#

上述功能將在整個 Excel 工作表中覆寫 舊值,寫入 新值

替換特定行的單元格值

如果我們只想在特定行中寫入新值,則可以按照以下方式進行:

: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")
VB   C#

這將在指定的行索引中將「new value」覆寫掉「old value」。

替換特定欄位的單元格值

同樣地,如果我們想在特定欄位中以新值覆蓋舊值,可以按照以下方法進行:

: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")
VB   C#

上面的代碼將會在指定的列索引處將 old value 替換為 new value,但工作表的其餘部分將保持不變。

在特定範圍內替換儲存格值

IronXL 也提供了一種方法,在特定範圍內將 舊值 替換為 新值

: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")
VB   C#

這將在指定範圍內的單元格中將「new value」寫在「old value」之上。

讓我們看看如何使用上述所有功能在 Excel 工作表中寫入新值以替換舊值的範例。

所有功能範例

: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")
VB   C#

有關如何編寫 Excel .NET 應用程式及更多資訊,請查看我們完整的教學教程 打開和寫入Excel檔案 C#.


快速指南

閱讀 API 參考資料

閱讀 IronXL 的文檔,包括庫中可用的所有函數、功能、名稱空間、類和枚舉列表。

閱讀 API 參考資料