跳至页脚内容
使用 IRONXL

如何在 C# 中写入 CSV 文件

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

IronXL库

IronXL是一个 .NET Excel 库,它为在 C# 应用程序中创建、读取和编辑电子表格文件提供了全面的功能。 它的性能和输出精度都非常出色。 它支持多种电子表格工作簿文件格式,例如 XLS、XLSX、XLSM、CSV 和 TSV。此外,它还允许您将 Excel 文件中的数据保存或导出为 CSV、JSON、HTML、二进制、字节数组、数据集或数据表等格式。

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

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

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

创建控制台应用程序

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

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

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

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

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

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

  1. 设置项目名称

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

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

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

安装 IronXL 库

项目创建完成后,需要将 IronXL 库安装到项目中才能使用它。 按照以下步骤安装。

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

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

  1. 浏览 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 = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

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

// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

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

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

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

如果要向现有工作簿添加更多工作表,请使用CreateWorkSheet方法。

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

将数据写入WorkSheet

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

// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

' Starting row for data entry
Dim i As Integer = 2

' Setting header titles for the columns
sheet("A1").Value = "ID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Salary"

' Populate each row with employee data
For Each employee In employeeNames
	' Set values for ID, Name, and Salary
	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 文件名,第二个参数是分隔符。

// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
' Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",")
$vbLabelText   $csharpLabel

完整代码如下:

using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
using System;
using IronXL;

class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Create a new workbook and worksheet
		Dim workBook As WorkBook = WorkBook.Create()
		Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Initialize an array of employee names
		Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

		' Starting row for data entry
		Dim i As Integer = 2

		' Setting header titles for the columns
		sheet("A1").Value = "ID"
		sheet("B1").Value = "Name"
		sheet("C1").Value = "Salary"

		' Populate each row with employee data
		For Each employee In employeeNames
			' Set values for ID, Name, and Salary
			sheet("A" & i).Value = i
			sheet("B" & i).Value = employee
			sheet("C" & i).Value = i * 1000
			i += 1
		Next employee

		' Save the modified workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("sample.csv", ",")
	End Sub
End Class
$vbLabelText   $csharpLabel

输出

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

摘要

本文介绍了一种使用 IronXL 在 C# 中编写 CSV 文件的简单方法。 IronXL 还提供了轻松处理现有 CSV 文件的功能。 它还允许您写入 CSV 文件、创建新的 Excel 文件,并使用简单的语法向其中写入数据。 即使没有安装 Microsoft Office,IronXL 也可以用于读取和写入 Excel 文件。 对于不同电子表格格式之间的转换,您可以查看此代码示例页面

IronXL 免费供开发使用,并可获得商业用途许可证。 您也可以尝试 IronXL 的商业用途免费试用版

常见问题解答

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

您可以使用IronXL的`SaveAsCsv`方法将数据导出为CSV文件。首先,创建一个工作簿和工作表,将数据写入单元格,然后使用`workBook.SaveAsCsv("filename.csv", ",");`将数据保存为CSV文件。

创建一个用于写入CSV文件的控制台应用程序有什么步骤?

要创建一个用于写入CSV文件的控制台应用程序,请在Visual Studio中建立一个新项目,选择适当的.NET版本,并通过NuGet包管理器安装IronXL。然后,使用IronXL创建一个工作簿,向工作表添加数据,并将其保存为CSV。

可以不使用Microsoft Excel写入CSV文件吗?

是的,您可以使用IronXL在不需要Microsoft Excel的情况下写入CSV文件。它允许程序化地操作Excel和CSV文件而无需安装Excel。

如何在 Visual Studio 项目中安装 IronXL?

您可以通过在Visual Studio中打开NuGet包管理器,搜索'IronXL',并点击'Install'将其添加到您的项目中来安装IronXL。这将使您能够利用IronXL的功能来处理Excel和CSV文件。

IronXL支持哪些文件格式导出?

IronXL支持将数据导出到多种格式,包括CSV、JSON、HTML、二进制、字节数组、DataSet和DataTable,这使其在不同的数据处理需求中具有通用性。

IronXL与不同的.NET版本兼容吗?

是的,IronXL与多个.NET版本兼容,包括.NET Core 2和3,以及.NET 5、6和7,使开发人员在不同的开发环境中具有灵活性。

我可以将IronXL用于商业项目吗?

是的,IronXL可以被许可用于商业用途。它还提供免费试用以用于开发,使开发人员能够在投入商业许可之前测试其功能。

如何在C#中使用IronXL创建新的工作簿和工作表?

您可以使用`WorkBook.Create()`来初始化一个工作簿对象,然后向其中添加一个新的工作表。这使您可以开始向工作表中写入数据。

IronXL需要任何Office Interop依赖项吗?

不,IronXL是一个独立的库,不需要任何Office Interop依赖项,使其易于在不同平台上的应用程序中使用和部署。

Curtis Chau
技术作家

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

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