如何在C#中编辑Excel文件

C## 编辑 Excel 文件。

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

使用 IronXL.Excel 库在 C# 中编辑 Excel 文件,该库提供了无需 Excel Interop 即可通过编程修改单元格、行、列和工作表的简单方法,从而减少了错误和复杂性。

开发人员在用 C# 修改 Excel 文件时需要精确,因为一个错误就可能损坏整个文档。 简单、高效的代码可降低出错风险,简化 Excel 文件的程序化编辑或删除。 IronXL 为 在 C# 中处理 Excel 文件提供了全面的解决方案,消除了对 Microsoft Office 的依赖。 本指南涵盖使用经过测试的函数在 C# 中正确、快速地编辑 Excel 文件的步骤。

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

本示例展示了如何使用 IronXL.Excel 加载现有 Excel 文件、更新单个单元格并保存更改。 只需不到 5 行代码即可开始,无需 Interop。 对于复杂的操作,请查阅我们全面的 API 参考

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

如何为 C## Excel 编辑设置 IronXL?

本教程使用 IronXL,一个 C# Excel 库。 下载并安装到您的项目中(免费用于开发),即可使用这些功能。 IronXL.Excel 支持各种平台,包括LinuxmacOS,是跨平台开发的多功能工具。

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

安装完成后,让我们开始吧。 IronXL 新手? 请查看我们的入门概述,了解全面的介绍。


Install-Package IronXL.Excel

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


如何使用教程

如何在 Excel 中编辑特定单元格值?

首先,学习如何编辑 Excel 电子表格的特定单元格值。 这是用 C# 编辑 Excel 文件时最常见的操作之一。

导入要修改的 Excel 电子表格,然后访问其工作表。 如下所示进行修改。 IronXL 提供了多种访问单元格的方式,为不同的编程风格提供了灵活性。

: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");
Imports IronXL

' Load the Excel workbook
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
' Access a specific worksheet
Dim ws As WorkSheet = 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")
$vbLabelText   $csharpLabel

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

Excel 电子表格,突出显示的单元格在国家列中显示 "法国",演示单元格选择编辑 Excel 单元格 B4 在编辑单元格内容后显示带有蓝色选择边框的 "新值"

请注意修改 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

如何在 Excel 中编辑整行值?

使用静态值轻松编辑 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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire row
ws.Rows(3).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

突出显示第 4 行的 Excel 电子表格,其中显示了法国的政府部门数据和 Montana 产品 Excel 表格显示在销售数据电子表格的所有列中添加了 "新值 "条目的新行

使用范围函数编辑行内特定范围的值:

// 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

在使用范围时,您可能还需要选择范围来进行排序或应用公式等高级操作。


如何在 Excel 中编辑全列值?

使用单个值轻松编辑 Excel SpreadSheet 的整列值。 这对于更新货币列、应用新税率或规范整个列的数据格式等情况非常有效。

: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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire column
ws.Columns(1).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

如图所示,我们将生成 sample.xlsx 电子表格:

Excel 电子表格,国家列以蓝色突出显示,显示跨细分市场和国家的业务数据 Excel 电子表格显示批量列编辑操作后列 B 被填充为 "新值 "文本

如何编辑具有动态值的整行?

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");
Imports IronXL
Imports System.Linq

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
For i As Integer = 0 To ws.Columns.Count() - 1
    ' Assign dynamic values to each cell in the row
    ws.Rows(3).Columns(i).Value = "New Value " & i.ToString()
Next
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

下表显示了该输出中 Excel 电子表格 sample.xlsx 的截图:

Excel 电子表格,突出显示第 4 行,显示使用动态值编辑之前的企业分段数据 Excel 工作表,其中第 4 行在动态行编辑操作后显示 "新值 0-4 "占位符文本

如何编辑具有动态值的全列?

使用动态值简单编辑特定列。 这种技术有助于在列中填充 ID 号、日期或基于行位置的计算值等顺序数据。

: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");
Imports IronXL
Imports System.Linq

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
For i As Integer = 0 To ws.Rows.Count() - 1
    ' Skip the first row if it's used as a header
    If i = 0 Then
        Continue For
    End If
    ' Assign dynamic values to each cell in the column
    ws.Rows(i).Columns(1).Value = "New Value " & i.ToString()
Next
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

突出显示国家列的 Excel 电子表格,显示各细分市场和产品的业务数据 Excel 工作表显示批量编辑操作后国家/地区列被动态占位符值 "新值 1-9" 填满

如何在 Excel 中替换电子表格中的值?

使用 Replace 函数将 Excel 电子表格中的任何值类型替换为更新值。 在任何需要的情况下,均可使用此功能替换 Excel SpreadSheet 数据。 这对于数据清理、术语更新或纠正电子表格中的系统性错误非常有效。

如何替换整个工作表中的值?

要在整个 Excel WorkSheet 中使用更新值替换特定值,请访问 WorkSheet 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 WorkSheet 中的 old 值替换为 new 值。 这是一项功能强大的批量更新功能,否则就需要在 Excel 中进行手动查找和替换操作。

请记住,如上例所示,在进行任何修改后都要保存文件。 有关保存和导出 Excel 文件的更多信息,请参阅我们的转换电子表格文件类型指南。

如何替换特定行中的值?

要更改特定行而不是整个工作表,请使用以下代码:

// 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 行中用 新值替换 <code> 旧值WorkSheet 的其余部分保持不变。

如何替换行范围中的值?

替换特定范围内的值,如下所示:

// 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

如何替换特定列中的值?

替换特定列的值,同时保持工作表的其他部分不变:

// 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 值替换为 new 值

如何替换列范围中的值?

使用范围功能在特定列的范围内进行替换:

// 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 范围内用 新值替换 旧值


如何从 Excel 工作表中删除一行?

IronXL.Excel 提供了删除 Excel WorkSheet 中特定行的简单函数。 该功能有助于清理数据或删除电子表格中的过时记录。 请参见示例:

: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");
Imports IronXL

Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
' Setting a static value for the entire row
ws.Rows(3).Value = "New Value"
wb.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

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

突出显示第 4 行的 Excel 工作表,显示删除行操作前的加拿大政府分部数据 Excel 工作表中第 4 行以蓝色高亮显示,显示移除行操作后的结果

如何从 Excel 文件中删除工作表?

要删除 Excel 文件中完整的 WorkSheet ,请使用以下方法。 这有助于合并数据或删除用于计算的临时工作表。 有关管理工作表的更多信息,请参阅我们的管理工作表指南。

// 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

wbWorkBook,与上述示例相同。 按名称删除工作表:

// 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 包含更多的功能,可在 Excel 电子表格中轻松执行任何类型的编辑和删除。 探索其他功能,如 创建 Excel 图表应用条件格式化使用公式。 如果您对在项目中使用 IronXL 有任何疑问,请联系我们的开发团队。


图书馆快速访问

### IronXL 库文档

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

IronXL 库文档
Documentation related to 如何从 Excel 文件中删除工作表?

常见问题解答

没有安装 Microsoft Office,如何用 C# 编辑 Excel 文件?

IronXL.Excel 允许您使用 C# 编辑 Excel 文件,而无需 Microsoft Office 或 Excel Interop。它提供了一个独立的库,能以编程方式修改单元格、行、列和工作表,消除了对 Office 的依赖,并能跨平台运行,包括 Linux 和 macOS。

使用 C# 更新 Excel 文件中单元格值的最简单方法是什么?

使用 IronXL,只需几行代码就能更新单元格值:IronXL.WorkBook.Load("file.xlsx").GetWorkSheet("Sheet1")["C3"].Value="Hello IronXL";然后保存工作簿。这种方法无需 Excel Interop,可直接访问单元格。

我能否以编程方式编辑 Excel 中的整行整列?

是的,IronXL 支持使用静态或动态值编辑整行整列。您可以使用单个值修改整行,以编程方式填充列,或使用数据库或计算等各种来源的动态数据更新行。

如何用 C# 从 Excel 文件中删除行或工作表?

IronXL.Excel 提供了从工作表中删除行和从 Excel 文件中删除整个工作表的简单方法。这些操作均以编程方式执行,无需安装 Excel,因此非常适合服务器端应用。

是否可以在 Excel 电子表格中查找并替换数值?

是的,IronXL 包括在电子表格中搜索和替换值的功能。您可以通过编程找到特定值并用新数据替换,这与 Excel 的本地查找和替换功能类似,但通过 C# 代码实现了自动化。

C# Excel 编辑库支持哪些平台?

IronXL 支持包括 Windows、Linux 和 macOS 在内的多种平台,是跨平台开发的多功能工具。这样,无论部署环境如何,您都可以在 C# 应用程序中编辑 Excel 文件。

如何开始用 C# 编辑 Excel 文件?

要开始使用,请通过 NuGet 软件包管理器下载并安装 IronXL。该库可免费用于开发。安装完成后,您可以立即开始加载 Excel 文件、修改单元格并使用简单直观的代码保存更改。

与手动方法相比,程序化 Excel 编辑有哪些优势?

IronXL.Excel 支持程序化 Excel 编辑,可减少人为错误,自动执行重复性任务,并可进行人工耗时的批量操作。它还消除了 Excel Interop 的需要,降低了复杂性并提高了性能。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 1,846,091 | 版本: 2026.2 刚刚发布