使用IRONXL

如何在C#中写入CSV文件数据

雷根·彭
雷根·彭
2023年六月20日
更新 2024年三月31日
分享:

本文将探讨如何使用 IronXL 编写 CSV 文件。

IronXL 库

IronXL 是一个 .NET Excel 库,为 C# 应用程序提供全面的创建、读取和编辑电子表格文件的功能。 它在性能和输出准确性方面表现出色。 它支持各种电子表格文件格式,如XLS、XLSX、XLSM、CSV和TSV。此外,它使您能够从Excel文件中保存或导出数据到CSV、JSON、HTML、二进制、字节数组、DataSet或DataTable等格式。

有了 IronXL,开发人员可以无缝地处理工作表和单元格范围,为操作数据提供了一种优雅的方法。 它允许轻松编辑公式,并促进工作表中公式的重新计算。 排序数据基于范围、列或行是很简单的。 您还可以通过冻结窗格自动调整行/列大小以及添加/删除行/列来修改布局。

IronXL.Excel 提供用用户密码保护 Excel 文件和设置编辑权限的功能。 此外,它提供了从Excel工作表添加、删除和提取图像的功能。 该库包含大量 Excel 函数,支持各种单元格数据格式。 这使得 IronXL.Excel 成为处理 Excel 文件最直观的 API 之一。

IronXL.Excel 的一个显著优势是,它不需要在机器上安装 Microsoft Excel 或 Office Interop 依赖项。它是一个独立的解决方案,可在多个平台上运行,并兼容.NET 7、6 和 5 版本。它还支持 .NET Core 2 和 3 以及标准 2 版本。 在使用 Excel 电子表格时,IronXL 与 .NET Framework 4.5 及更高版本兼容。

创建控制台应用程序

建议从 Visual Studio 的最新版本开始创建应用程序。 Visual Studio 是用于 C# 开发的官方集成开发环境,您必须安装它。 如果未安装,您可以从Microsoft Visual Studio 网站下载。

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

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

    如何在 C# 中将数据写入 CSV 文件,图 1:打开 Visual Studio

    打开 Visual Studio

  2. 选择 "控制台应用程序",然后单击 "下一步"。

    如何在 C# 中写入 CSV 文件,图 2:在 Visual Studio 中创建一个新项目

    在Visual Studio中创建一个新项目

  3. 设置项目名称

    如何在CSV文件中写入数据,图3:配置您的新项目

    配置您的新项目

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

    如何在C#中将数据写入CSV文件,图4:.NET Framework选择

    .NET Framework 选择

安装 IronXL 库

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

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

    如何在 C# 中将数据写入 CSV 文件,第 5 图:导航到 NuGet 包管理器

    导航到 NuGet 包管理器

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

    如何在 C# 中将数据写入 CSV 文件,图 6:在 NuGet 包管理器 UI 中搜索并安装 IronXL 包

    在NuGet包管理器UI中搜索并安装IronXL包

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

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

在 C# 中创建新工作簿;

IronXL 提供了创建空工作簿的功能。 工作簿是包含多个工作表的电子表格。 数据存储在单元格中。 CSV 看起来也像电子表格,但扩展名为 CSV 文件。

// Creates a new Instance of WorkBook SpreadSheet
WorkBook workBook = new WorkBook();
// Creates a new Instance of WorkBook SpreadSheet
WorkBook workBook = new WorkBook();
' Creates a new Instance of WorkBook SpreadSheet
Dim workBook As New WorkBook()
$vbLabelText   $csharpLabel

现在,让我们在WorkBook中创建一个工作表。 在工作簿中有多种创建工作表的方法。

// Adds sheet1 to the workbook
WorkSheet sheet = workBook.DefaultWorkSheet;

// Creates a worksheet with name Sheet1
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds sheet1 to the workbook
WorkSheet sheet = workBook.DefaultWorkSheet;

// Creates a worksheet with name Sheet1
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
' Adds sheet1 to the workbook
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Creates a worksheet with name Sheet1
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

如果您想在现有工作簿中添加更多工作表,请使用CreateWorkSheet方法。

注意:如果 CSV 文件已存在,您可以使用WorkBook.LoadCSV方法。 您可以查看此代码示例页面以加载现有的CSV文件。

将数据写入WorkSheet

使用 IronXL 编写 CSV 文件非常简单。 它提供 Excel 功能,可将数据写入 CSV。单元格引用可用于在指定位置添加值。 在这里,我将使用foreach循环添加一些员工的记录。

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}
string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}
Dim employeenames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
Dim i As Integer = 2
sheet ("A1").Value = "ID"
sheet ("B1").Value = "Name"
sheet ("C1").Value = "Salary"

For Each employee In employeenames
	sheet ("A" & i).Value = i
	sheet ("B" & i).Value = employee
	sheet ("C" & i).Value = i * 1000
	i += 1
Next employee
$vbLabelText   $csharpLabel

在上面的代码示例中,创建了一个employeenames数组,并将第一行设置为包含以下标题:ID、Name、Salary。 变量i也被初始化为值2,它将从标题下的第二行开始输入记录。 foreach循环从列表中取出一个员工,并将其与ID和薪水值一起添加到行中。 在循环结束之前,应该增加i的值,否则每条记录都会被添加到同一行。

将数据保存为 CSV 文件

最后一步是保存 CSV 文件。IronXL 提供方法 SaveAsCsv 将工作簿保存为 CSV 文件。此方法的第一个参数是 CSV 文件名,第二个参数是分隔符。

workBook.SaveAsCsv("sample.csv", ",");
workBook.SaveAsCsv("sample.csv", ",");
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

内容如下

using System;
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}

workBook.SaveAsCsv("sample.csv", ",");
using System;
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

string [] employeenames = { "John", "Peter", "Harry", "Kevin", "Brian" };
int i = 2;
sheet ["A1"].Value = "ID";
sheet ["B1"].Value = "Name";
sheet ["C1"].Value = "Salary";

foreach (var employee in employeenames)
{
    sheet ["A" + i].Value = i;
    sheet ["B" + i].Value = employee;
    sheet ["C" + i].Value = i * 1000;
    i++;
}

workBook.SaveAsCsv("sample.csv", ",");
Imports System
Imports IronXL

Private workBook As WorkBook = WorkBook.Create()
Private sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

Private employeenames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }
Private i As Integer = 2
Private sheet ("A1").Value = "ID"
Private sheet ("B1").Value = "Name"
Private sheet ("C1").Value = "Salary"

For Each employee In employeenames
	sheet ("A" & i).Value = i
	sheet ("B" & i).Value = employee
	sheet ("C" & i).Value = i * 1000
	i += 1
Next employee

workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

输出

如何在 C# 中将数据写入 CSV 文件,图 7:输出的 CSV 文件

输出 CSV 文件

摘要

本文介绍一种使用 C# 中的 IronXL 编写 CSV 文件的简单方法。 IronXL 还提供了使用现有 CSV 文件的功能,不会造成任何麻烦。 您还可以使用简单的语法编写 CSV 文件、创建新的 Excel 文件并向其中写入数据。 IronXL.Excel 也可用于在未安装 Microsoft Office 的情况下读写 Excel 文件。 有关不同电子表格格式之间的转换,您可以查看此代码示例页面

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

雷根·彭
软件工程师
Regan毕业于雷丁大学,拥有电子工程学士学位。在加入Iron Software之前,他的前工作职位要求他专注于单一任务;他在Iron Software最喜欢的是能进行多种工作,无论是增加销售价值、技术支持、产品开发还是营销。他喜欢了解开发人员如何使用Iron Software的库,并利用这些知识不断改进文档和开发产品。
< 前一页
如何在ASP.NET中查看Excel
下一步 >
如何使用C#在Excel单元格中设置背景颜色