编写 Excel .NET 函数

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

许多 C# 应用程序项目要求我们以编程方式更新文件并在 Excel 电子表格中写入新数据。Excel .NET 功能有时可能比较复杂,但使用 IronXL 库,这项任务就变得非常简单,而且可以处理任何格式的 Excel 电子表格。无需大量代码,只需访问特定的单元格和您指定的自定义值。

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronXLNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变Excel。

适用于Excel的C# NuGet库 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 单元格"。为此,可以访问打开的 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 中工作表 Sheet1A1 单元格中写入新值。同样,我们也可以在 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。之后,"新值 "将被写入位于此范围内的所有单元格中。了解更多 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#

这段代码将从 B2B9 写入 新值 (行范围) 从C3C7(栏目范围) 的工作表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 中的27列的BD中写入动态值。我们可以在 sample.xlsx 中看到代码的结果:


替换 Excel 单元格值

使用 IronXL,我们可以很容易地写入一个新值来替换旧值。()功能如下

: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#

这将只在指定的行索引中将 "新值 "写入 "旧值"。

替换特定列中的单元格值

同样,如果我们想在特定列中的 "旧值 "上写入 "新值",可以按如下方法操作:

: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#

上述代码将写入 "新值 "来替换 "旧值",但仅限于指定的列索引。工作表的其他部分保持不变。

替换特定范围内的单元格值

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#

这将把 "新值 "写在 "旧值 "之上,只写在指定范围内的单元格中。

让我们看看如何使用上述所有函数在 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 应用程序等更多信息,请查看我们的完整教程,了解如何 用 C# 打开和写入 Excel 文件.


教程快速访问

阅读应用程序接口参考

阅读 IronXL 文档,包括库中所有可用函数、功能、命名空间、类和枚举的列表。

阅读应用程序接口参考