使用IRONXL

如何在C#中打开Excel文件并写入数据

更新 2024年三月31日
分享:

本文将探讨 IronXL 库,演示如何在 C# 控制台应用程序中打开 Microsoft Excel 文件并向其中写入数据。

IronXL - Excel 库

IronXLC# Excel Library 是一个 .NET Excel 库,便于在 C# 应用程序中创建、读取和编辑 Excel 文件。 它具有卓越的性能和准确的输出。 该库支持所有 Excel 工作簿文件格式包括 XLS、XLSX、XLSM、CSV 和 TSV。此外,它还允许以 JSON、HTML、二进制、字节阵列等格式保存或导出数据、数据集或数据表.

有了 IronXL,开发人员可以无缝地处理工作表和单元格范围。 它能够编辑公式并在工作表中轻松地重新计算。 数据排序基于范围、列或行的翻译非常简单。 该库提供修改布局的功能,例如冷冻窗格, 自动调整行/列大小添加/删除行/列.

IronXL 还包括使保护翻译带有用户密码和编辑权限的 Excel 文件。 另一个值得注意的功能是从 Excel 工作表中添加、删除和提取图片的功能。 该库提供了大量 Excel 函数,支持各种单元格数据格式. 这些功能使 IronXL.Excel 成为处理 Excel 文件最方便用户使用的 API 之一。

IronXL.Excel 的显著优势之一是它不需要在机器上安装 Microsoft Excel,无需 Office Interop 或任何其他依赖项。 它兼容多种平台,支持 .NET7、6 和 5。它还兼容 .NET Core 2 和 3,以及 .NET Framework 4.5 和更高版本,可用于 Excel 电子表格。

创建控制台应用程序

建议使用最新版本的 Visual Studio IDE 创建应用程序。 Visual Studio 是用于 C# 开发的官方集成开发环境,假定您已经安装了它。 如果您还没有安装 Visual Studio,可以从官方的微软 Visual Studio 网站.

请按照以下步骤创建一个名为 "DemoApp "的新项目。

  1. 打开 Visual Studio,点击创建新项目

    如何用 C# 打开 Excel 文件并写入数据,图 1:新建项目

    新项目

  2. 选择控制台应用程序并单击下一步

    如何在 C# 中打开 Excel 文件并写入数据,图 2:新项目类型

    新项目类型

  3. 输入项目名称

    如何在 C# 中打开 Excel 文件并写入数据,图 3:新项目名称

    新项目名称

  4. 选择 .NET 版本。 选择稳定版本 .NET 6.0。

    如何在 C# 中打开 Excel 文件并写入数据,图 4:新项目 附加信息

    新项目附加信息

安装 IronXL 库

项目创建后,需要在项目中安装 IronXL 库才能使用。 请按照以下步骤安装。

  1. 从 "解决方案资源管理器 "或 "工具 "中打开 "管理解决方案的 NuGet 包"。

    如何在 C# 中打开 Excel 文件并写入数据,图 5:NuGet 软件包管理器

    NuGet 软件包管理器

  2. 浏览 IronXL 库并选择当前项目。 点击安装。

    如何在 C# 中打开 Excel 文件并写入数据,图 6:在 NuGet 软件包管理器用户界面中搜索并安装 IronXL 软件包

    在 NuGet 软件包管理器用户界面中搜索并安装 IronXL 软件包

    Program.cs 文件顶部添加以下命名空间

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

在 C# 中打开现有 Excel 文件;

IronXL.Excel 提供了打开现有 Excel 文件的功能,您也可以创建一个新的 Excel 文件。本例将使用 C# IronXL 打开一个现有文件。

// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
$vbLabelText   $csharpLabel

现在,让我们选择第一个工作表。 您可以按索引号或名称选择工作表。 默认工作表 "属性有助于获取第一张工作表。

// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets [0];

// Select worksheet by name 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets [0];

// Select worksheet by name 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets (0)

' Select worksheet by name 
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Get any existing worksheet
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

上面的代码从 Excel 工作簿中获取第一张表。 要创建包含数据的新 Excel 文件,请查看以下内容代码示例页面.

现在,让我们使用 IronXL.Excel 对象库将数据写入 Excel 文件。

用 C# 将数据写入 Excel 文件;

使用 IronXL.Excel 将数据写入 Excel 文件非常简单。 存档有多种方法,但最简单的方法是使用 Excel 单元格引用。

// Access A1 cell and write the value
workSheet ["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet ["A1"].Value = "Value using cell reference";
' Access A1 cell and write the value
workSheet ("A1").Value = "Value using cell reference"
$vbLabelText   $csharpLabel

还可以将数据写入单元格范围。 以下代码将数据从单元格 B1 写入到 B5。

workSheet ["B1:B5"].Value = "Range value";
workSheet ["B1:B5"].Value = "Range value";
workSheet ("B1:B5").Value = "Range value"
$vbLabelText   $csharpLabel

我们还可以用一个 for 循环来填充范围,使其动态化。 代码如下

//specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    //write the Dynamic value in one row
    workSheet ["C" + i].Value = "Value: " + i;

    //write the Dynamic value in another row
    ws ["D" + i].Value = "Value: " + i;
}
//specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    //write the Dynamic value in one row
    workSheet ["C" + i].Value = "Value: " + i;

    //write the Dynamic value in another row
    ws ["D" + i].Value = "Value: " + i;
}
'specify range in which we want to write the values
For i As Integer = 1 To 5
	'write the Dynamic value in one row
	workSheet ("C" & i).Value = "Value: " & i

	'write the Dynamic value in another row
	ws ("D" & i).Value = "Value: " & i
Next i
$vbLabelText   $csharpLabel

将数据写入 Excel 文件的另一种方法是使用替换方法。

workSheet ["D5"].Replace("Value: 5", "Replaced Value");
workSheet ["D5"].Replace("Value: 5", "Replaced Value");
workSheet ("D5").Replace("Value: 5", "Replaced Value")
$vbLabelText   $csharpLabel

用 C# 保存 Excel 文件;

本节将介绍如何保存包含新编写内容的 Excel 文件。

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

代码如下

using System;
using IronXL;

static void Main(string [] args)
{
    // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    // Select worksheet at index 0
    WorkSheet workSheet = workBook.WorkSheets [0];

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

    workSheet ["B1:B5"].Value = "Range value";

    //specify range in which we want to write the values
    for (int i = 1; i <= 5; i++)
    {
        //write the Dynamic value in one row
        workSheet ["C" + i].Value = "Value: " + i;

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

    workSheet ["D5"].Replace("Value: 5", "Replaced Value");

    workBook.SaveAs("sample.xlsx");
    Console.WriteLine("successfully written in Excel File");
}
using System;
using IronXL;

static void Main(string [] args)
{
    // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    // Select worksheet at index 0
    WorkSheet workSheet = workBook.WorkSheets [0];

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

    workSheet ["B1:B5"].Value = "Range value";

    //specify range in which we want to write the values
    for (int i = 1; i <= 5; i++)
    {
        //write the Dynamic value in one row
        workSheet ["C" + i].Value = "Value: " + i;

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

    workSheet ["D5"].Replace("Value: 5", "Replaced Value");

    workBook.SaveAs("sample.xlsx");
    Console.WriteLine("successfully written in Excel File");
}
Imports System
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
	Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

	' Select worksheet at index 0
	Dim workSheet As WorkSheet = workBook.WorkSheets (0)

	' Access A1 cell and write the value
	workSheet ("A1").Value = "Value using cell reference"

	workSheet ("B1:B5").Value = "Range value"

	'specify range in which we want to write the values
	For i As Integer = 1 To 5
		'write the Dynamic value in one row
		workSheet ("C" & i).Value = "Value: " & i

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

	workSheet ("D5").Replace("Value: 5", "Replaced Value")

	workBook.SaveAs("sample.xlsx")
	Console.WriteLine("successfully written in Excel File")
End Sub
$vbLabelText   $csharpLabel

有关如何用 C# 阅读 Excel 文件数据的详细信息,请参阅本例.

输出

文件输出为

如何用 C# 打开 Excel 文件并写入数据,图 7:输出的 Excel 文件

输出 Excel 文件

摘要

本文演示了如何使用 IronXL.Excel 在 C# 中将数据写入 Excel 文件。 IronXL.Excel 提供的功能可以无障碍地处理现有 Excel 文件。 它还允许您创建新的 Excel 文件,并以简单的语法向其中写入数据。 IronXL.Excel 也可用于在未安装 Microsoft Excel 应用程序的情况下读取 Excel 文件。 要从 Excel 文件中读取数据,您可以查看以下内容代码示例页面.

IronXL 可免费用于开发,也可授权用于商业用途。 您还可以免费试用 IronXL试用期用于商业用途。

Kannaopat Udonpant

坎那帕·乌东攀

软件工程师

 LinkedIn

在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
如何使用C#禁用Excel中的受保护视图
下一步 >
如何在C#中将大量数据从DataTable导出到Excel