如何在C#中编辑Excel文件

C# 编辑 Excel 文件

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

开发人员在使用 C# 修改和编辑 Excel 文件时必须格外小心,因为一个错误就可能改变整个文档。 能够依靠简单高效的代码行有助于降低出错的风险,并使我们能够以编程方式更轻松地编辑或删除 Excel 文件。 今天我们将逐步讲解如何使用经过测试的函数,在 C# 中正确、快速地编辑 Excel 文件。

快速入门:使用 IronXL 编辑特定单元格值

本示例展示了使用 IronXL 加载现有 Excel 文件、更新单个单元格并保存更改是多么容易。 只需不到 5 行代码即可开始,无需 Interop。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.WorkBook.Load("file.xlsx").GetWorkSheet("Sheet1")["C3"].Value = "Hello IronXL";
    // then save your workbook
    iroExcelWorkBook.SaveAs("file.xlsx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

步骤1

1. 使用 IronXL 库的 C# 编辑 Excel 文件

在本教程中,我们将使用 IronXL(一个 C# Excel 库)定义的函数。 要使用这些功能,您需要先下载并将其安装到您的项目中(开发免费)。

You can either Download IronXL.zip or read more and install via the NuGet package page.

安装完成后,我们就可以开始了!


Install-Package IronXL.Excel

根据需要将xxx替换为相应的版本号。


如何使用教程

2. 编辑特定单元格值

首先,我们将学习如何编辑 Excel 表格中的特定单元格值。

为此,我们导入要修改的 Excel 电子表格,然后访问其工作表。 然后我们可以应用如下所示的修改。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-specific-cell-value.cs
using IronXL;

// Load the Excel workbook
WorkBook wb = WorkBook.Load("sample.xlsx");
// Access a specific worksheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Access specific cell by identifying its row and column, then modify its value
ws.Rows[3].Columns[1].Value = "New Value";
// Save changes to the workbook
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下是Excel电子表格sample.xlsx的修改前后截图:

before after

我们可以看到修改Excel电子表格中的值是多么简单。

如有需要,还可以通过单元格地址编辑特定单元格的值:

// Alternative way to access specific cell and apply changes
ws["B4"].Value = "New Value";
// Alternative way to access specific cell and apply changes
ws["B4"].Value = "New Value";
' Alternative way to access specific cell and apply changes
ws("B4").Value = "New Value"
$vbLabelText   $csharpLabel

3. 编辑整行值

要编辑Excel电子表格中具有静态值的整行值非常简单。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-row-value.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire row
ws.Rows[3].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

请参见下方sample.xlsx的屏幕截图:

before after

为此,我们还可以使用 range 函数来编辑行中特定范围的值:

// Editing a specific range of a row
ws["A3:E3"].Value = "New Value";
// Editing a specific range of a row
ws["A3:E3"].Value = "New Value";
' Editing a specific range of a row
ws("A3:E3").Value = "New Value"
$vbLabelText   $csharpLabel

4. 编辑整列值

与上述方法类似,我们可以使用单个值轻松编辑 Excel 电子表格中的整列值。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-column.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire column
ws.Columns[1].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这将生成如下所示的sample.xlsx电子表格:

before after

5. 编辑包含动态值的整行

使用 IronXL,还可以编辑具有动态值的特定行。 这意味着我们可以通过为每个单元格分配动态值来编辑整行。 我们来看一个例子:

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-row-dynamic.cs
using IronXL;
using System.Linq;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
    // Assign dynamic values to each cell in the row
    ws.Rows[3].Columns[i].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

下表显示了此次输出中 Excel 表格sample.xlsx的屏幕截图:

before after

6. 编辑包含动态值的整列

编辑具有动态值的特定列也很简单。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-full-column-dynamic.cs
using IronXL;
using System.Linq;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
    // Skip the first row if it's used as a header
    if (i == 0)
        continue;
    // Assign dynamic values to each cell in the column
    ws.Rows[i].Columns[1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下是sample.xlsx的表格结果:

before after

7. 替换电子表格值

如果要将 Excel 电子表格中的任何类型的值替换为更新后的值,我们可以使用名为Replace函数。 利用此功能,我们可以在任何需要的情况下替换 Excel 电子表格中的数据。

7.1. 替换整个工作表中的特定值

要将整个 Excel 工作表中的特定值替换为更新后的值,我们只需访问工作表ws (与上面的示例相同),然后像这样应用Replace功能。

// Replace a specific value in the entire worksheet
ws.Replace("old value", "new value");
// Replace a specific value in the entire worksheet
ws.Replace("old value", "new value");
' Replace a specific value in the entire worksheet
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel

此函数会将整个 Excel 工作表中的old value替换为new value

如上例所示,每次更改后都不要忘记保存文件。

7.2. 替换特定行的值

如果您只想更改特定行而不是整个工作表,请使用此代码。

// Replace a specific value in a specific row
ws.Rows[2].Replace("old value", "new value");
// Replace a specific value in a specific row
ws.Rows[2].Replace("old value", "new value");
' Replace a specific value in a specific row
ws.Rows(2).Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述代码只会将第2行的old value替换为new value 。 工作表的其余部分保持不变。

7.3. 替换行范围的值

我们还可以按如下方式替换特定范围内的值:

// Replace specific values in a row range
ws["From Cell Address : To Cell Address"].Replace("old value", "new value");
// Replace specific values in a row range
ws["From Cell Address : To Cell Address"].Replace("old value", "new value");
' Replace specific values in a row range
ws("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

假设我们只想将第4B4E4单元格范围内的旧值替换为新值,那么我们可以这样写:

ws["B4:E4"].Replace("old value", "new value");
ws["B4:E4"].Replace("old value", "new value");
ws("B4:E4").Replace("old value", "new value")
$vbLabelText   $csharpLabel

7.4. 替换特定列的值

我们还可以替换特定列的值,而工作表的其余部分保持不变。

// Replace specific values in a column
ws.Columns[1].Replace("old value", "new value");
// Replace specific values in a column
ws.Columns[1].Replace("old value", "new value");
' Replace specific values in a column
ws.Columns(1).Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述代码将仅对第1列替换old value new value

7.5. 替换列范围的值

通过以下方式,我们还可以使用 range 函数来替换特定列中的某个范围内的值。

// Replace specific values in a column range
ws["B5:B10"].Replace("old value", "new value");
// Replace specific values in a column range
ws["B5:B10"].Replace("old value", "new value");
' Replace specific values in a column range
ws("B5:B10").Replace("old value", "new value")
$vbLabelText   $csharpLabel

上述代码将把B列中B5B10范围内的old value替换为new value


8. 从Excel工作表中删除行

IronXL 提供了一个非常简单的功能,可以删除 Excel 工作表中的特定行。 我们来看一个例子。

:path=/static-assets/excel/content-code-examples/how-to/csharp-edit-excel-file-row-value.cs
using IronXL;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
// Setting a static value for the entire row
ws.Rows[3].Value = "New Value";
wb.SaveAs("sample.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述代码将删除sample.xlsx中的第3行,如下表所示:

before after

9. 从 Excel 文件中删除工作表

如果要删除 Excel 文件中的整个工作表,可以使用以下方法:

// Remove a worksheet by its index
wb.RemoveWorkSheet(1); // by sheet indexing
// Remove a worksheet by its index
wb.RemoveWorkSheet(1); // by sheet indexing
' Remove a worksheet by its index
wb.RemoveWorkSheet(1) ' by sheet indexing
$vbLabelText   $csharpLabel

wb是 WorkBook,与上面的示例相同。 如果要按名称删除工作表,则:

// Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
// Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
' Remove a worksheet by its name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
$vbLabelText   $csharpLabel

IronXL 拥有更多功能,我们可以轻松地在 Excel 电子表格中执行任何类型的编辑和删除操作。 如果您在使用过程中遇到任何问题,请联系我们的开发团队。


图书馆快速访问

IronXL 库文档

利用 IronXL C# 库的各种函数,探索其全部功能,用于编辑、删除、设置样式和完善您的 Excel 工作簿。

IronXL 库文档
Documentation related to 9. 从 Excel 文件中删除工作表

常见问题解答

如何在不使用 Interop 的情况下在 C# 中编辑 Excel 文件?

您可以通过使用 IronXL 库在 C# 中编辑 Excel 文件,而无需使用 Interop。IronXL 提供多种修改 Excel 文档的方法,例如编辑单元格、行和列,甚至删除工作表。

如何使用 IronXL 修改 Excel 文件中的单元格值?

要使用 IronXL 修改 Excel 文件中的单元格值,请加载 Excel 工作簿并访问特定工作表。您可以通过指定行和列索引来更改单元格的值,然后保存工作簿。

在 C# Excel 应用程序中替换值的方法是什么?

在 C# Excel 应用程序中,您可以使用 IronXL 的 Replace 函数替换值。这允许您在整个工作表、特定行、列或范围内替换特定值。

如何在 C# 中以编程方式从 Excel 文件中删除工作表?

您可以使用 IronXL 的 RemoveWorkSheet 方法在 C# 中以编程方式从 Excel 文件中删除工作表。您可以通过名称或索引指定要删除的工作表。

我可以使用 C# 编辑 Excel 文件中的整行吗?

是的,使用 IronXL,您可以使用 C# 编辑 Excel 文件中的整行。您可以通过遍历列来为行中的单元格分配静态或动态值。

是否可以为 Excel 文件中的整列设置静态值?

是的,IronXL 允许您为 Excel 文件中的整列设置静态值。如果需要,您还可以通过遍历列中的每个单元格使用动态值。

如何使用 C# 从 Excel 工作表中删除特定行?

要使用 C# 从 Excel 工作表中删除特定行,请使用 IronXL 库的 RemoveRow 方法,指定要删除的行。

开始使用 C# 编辑 Excel 文件的初始步骤是什么?

要开始使用 C# 编辑 Excel 文件,首先下载并安装 IronXL 库。然后,加载您的 Excel 工作簿,选择您要编辑的工作表,并利用 IronXL 的功能修改单元格、行、列或工作表。

IronXL 适合开发环境吗?

是的,IronXL 非常适合开发环境。它可以免费用于开发目的,并提供全面的功能套件用于以编程方式编辑 Excel 文件。

如何使用 C# 将 Excel 文件转换为不同的格式?

IronXL 允许使用其导出功能将 Excel 文件转换为不同的格式。您可以使用 IronXL 的方法将已修改的 Excel 工作簿保存为 CSV、HTML 或 PDF 格式。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布