跳至页脚内容
使用 IRONXL

如何在 C# 中写入 CSV 文件

要在 C# 中编写 CSV 文件,可以使用 IronXL 库创建工作簿,使用类似 workSheet["A1"].Value = "Product" 的简单语法向工作表单元格添加数据,然后使用 workBook.SaveAs("file.csv") 保存 - 提供了一种直接的数据导出方法。

本文将向您展示如何在新项目中使用名为 IronXL 的 C# 库来写入 CSV 文件。 IronXL库提供了一套全面的 Excel 文件处理解决方案,无需安装 Microsoft Office,因此非常适合服务器环境和 Azure 部署

如何将数据写入 CSV 文件?

  1. 安装用于写入 CSV 文件的 C# 库。

  2. 使用WorkBook.Create创建新工作簿。

  3. 使用WorkBook.CreateWorkSheet创建工作表。

  4. 使用 workSheet["cell name"].Value 向单元格添加值。

  5. 使用SaveAs方法另存为 CSV 文件。

这些步骤为创建电子表格以及以各种格式导出数据奠定了基础。 无论您处理的是 CSV、XLSX 还是其他受支持的格式,操作流程均大致相同。 对于更复杂的场景,您还可以导入 Excel 数据,并在不同的电子表格文件格式之间进行转换

是什么让 IronXL 成为 CSV 操作的最佳选择?

与 CSVHelper NuGet 包相比,IronXL 作为一款高效的解决方案,特别适合需要将数据写入 CSV 文件的 C# 开发人员。 在当今的软件开发领域,处理和操作数据的能力至关重要,而 IronXL 凭借其专为 C# 设计的强大工具集,完美满足了这一需求。

该库在以下几个关键领域表现卓越:

本文探讨了 IronXL 的各项功能与方法,这些特性使其成为 C# 开发者的绝佳选择,能够帮助他们简化将数据写入 CSV 文件的过程,在简单易用与精准可靠之间取得平衡。 无论您是在构建 ASP.NET 应用程序、使用 Blazor,还是开发 .NET MAUI 应用程序,IronXL 都能提供一致且可靠的功能。

如何创建一个用于 CSV 操作的新 Visual Studio 项目?

要开始使用 IronXL 库,您需要创建一个新的 Visual Studio C# 项目或加载现有项目。 以下是在 Visual Studio 中创建新项目的方法:

  1. 打开Visual Studio并导航到"文件"菜单。 您将看到一个下拉菜单; 从该菜单中选择"新建"。 这一操作将显示另一个侧菜单。

    Visual Studio 文件菜单下拉菜单显示"新建"、"打开"、"克隆存储库"以及各种项目创建选项图 1:Visual Studio 的"文件"菜单,其中"新建 > 项目"选项被高亮显示,展示了创建用于 CSV 文件操作的新 C# 项目的第一个步骤

  2. 在侧边菜单中,找到并点击"项目"。 这将打开一个新窗口。 请使用搜索栏查找"Console Application"。 选择与 C# 相关的选项,然后点击"下一步"按钮继续。 控制台应用程序模板非常适合演示 CSV 操作,并且可以轻松改编用于 Web 应用程序云部署

    Visual Studio 新建项目对话框显示已选择"控制台应用程序"模板,并提供 C#、跨平台支持(Linux、macOS、Windows)和 .NET Core 框架等选项图 2:在支持跨平台 .NET Core 的 Visual Studio 中创建新的控制台应用程序项目

  3. 随后将出现一个配置窗口。 输入项目名称,指定项目位置,然后点击"下一步"按钮。 建议将项目组织在专用的文件夹结构中,尤其是在处理多个 Excel 文件或进行数据库集成时。

    Visual Studio 项目配置对话框显示了名为"SpreadSheet"的新控制台应用程序的设置,其中包含 Linux、macOS、Windows 和 Console 平台选项图 3:在 Visual Studio 中配置新项目设置,包括项目名称、位置和解决方案选项

  4. 最终窗口出现。 选择目标框架,然后点击"创建"按钮开始项目创建流程。 为确保与 IronXL 的条件格式化图表创建等功能实现最佳兼容性,建议使用 .NET 6.0 或更高版本。

    Visual Studio 项目创建对话框显示"其他信息"步骤,其中已选择 .NET 5.0 作为控制台应用程序的目标框架图 4:在创建新的控制台应用程序项目时,于"附加信息"对话框中选择 .NET Framework 5.0 作为目标框架

如何安装 IronXL CSV 库?

现在项目已设置完成,让我们添加 IronXL C# 库。 请按照以下步骤安装 IronXL:

  1. 在 Visual Studio 中,转到"工具"菜单。 此时会出现一个下拉菜单——请从该菜单中选择"NuGet 包管理器"。 IronXL 也可通过 Docker 容器安装,以支持容器化应用程序。
  2. 在 NuGet 包管理器中,从侧边菜单选择"管理解决方案的 NuGet 包"。

    Visual Studio 工具菜单显示包管理器选项,包括包管理器控制台、管理解决方案的 NuGet 包和包管理器设置。 通过 Visual Studio 的"工具"菜单访问 NuGet 包管理器,以安装用于在 C# 中写入 CSV 文件的包

  3. 会打开一个新窗口。 转到"浏览"选项卡,在搜索栏中输入"IronXL"。 您将看到IronXL包的列表; 选择最新版本并点击"安装"按钮。 该库支持多种操作,包括单元格格式设置公式编辑图像处理

    NuGet 包管理器显示 IronXL.Excel 包(版本 2023.11.12)可供安装,下载量为 592K。 Visual Studio 中的 NuGet 包管理器界面显示 IronXL.Excel 包已准备就绪,可进行安装。 请注意最新稳定版本(2023.11.12)以及该包的受欢迎程度——下载量已超过 59.2 万次

安装完成后,若您在生产环境中使用 IronXL,请确保许可证密钥已正确配置。 您可使用免费试用版进行开发和测试。

如何使用 IronXL 将数据写入 CSV 文件?

让我们使用 IronXL库将数据写入 CSV 文件。 在本节中,我们将创建一个新的 CSV 文件并向其中填充数据。 以下示例使用 IronXL 在 CSV 文件中创建一份简单的收据。让我们逐步解析这段代码。

为什么需要导入 IronXL 和 System.Linq?

using IronXL; 
using System.Linq;

// This is the main class where execution starts.
public class Program {
    static void Main() {
        // Main method where all logic is executed
    }
}
using IronXL; 
using System.Linq;

// This is the main class where execution starts.
public class Program {
    static void Main() {
        // Main method where all logic is executed
    }
}
Imports IronXL
Imports System.Linq

' This is the main class where execution starts.
Public Class Program
	Shared Sub Main()
		' Main method where all logic is executed
	End Sub
End Class
$vbLabelText   $csharpLabel

这些代码从 IronXL 库导入处理 Excel 文件所需的类和功能,以及来自 System.Linq 命名空间的 LINQ 扩展方法。 在处理数据范围以及对单元格数据执行数学运算时,LINQ 尤为实用。

如何创建 WorkBookWorkSheet

// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();

// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();

// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
' Create a new workbook. This serves as the container for all worksheets.
Dim workBook As WorkBook = WorkBook.Create()

' Create a new worksheet within the workbook named "Receipt".
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Receipt")
$vbLabelText   $csharpLabel

此代码创建一个新的 Excel 工作簿 (WorkBook) 和该工作簿中一个名为"Receipt"的工作表 (WorkSheet)。 您还可以加载现有的电子表格,或打开特定的工作表进行修改。 对于更复杂的场景,请考虑在单个工作簿中管理多个工作表

何时应在 CSV 文件中添加表头?

// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product"; 
workSheet["B1"].Value = "Price";
// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product"; 
workSheet["B1"].Value = "Price";
' Set the header row for columns. Headers added for better understanding of data.
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Price"
$vbLabelText   $csharpLabel

这些行设置了工作表第一行各列的标题行,为每一列标注标签。 表头对于数据组织至关重要,可通过单元格格式设置选项(如字体大小、边框和对齐方式)进行样式调整。 您还可以应用背景颜色和图案,使标题更加醒目。

添加数据行的最佳方法是什么?

// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1"; 
workSheet["B2"].DoubleValue = 20.10; 

workSheet["A3"].Value = "Item 2"; 
workSheet["B3"].DoubleValue = 15.50; 

workSheet["A4"].Value = "Item 3"; 
workSheet["B4"].DoubleValue = 10.25;
// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1"; 
workSheet["B2"].DoubleValue = 20.10; 

workSheet["A3"].Value = "Item 2"; 
workSheet["B3"].DoubleValue = 15.50; 

workSheet["A4"].Value = "Item 3"; 
workSheet["B4"].DoubleValue = 10.25;
' Populate worksheet with product data and their respective prices.
workSheet("A2").Value = "Item 1"
workSheet("B2").DoubleValue = 20.10

workSheet("A3").Value = "Item 2"
workSheet("B3").DoubleValue = 15.50

workSheet("A4").Value = "Item 3"
workSheet("B4").DoubleValue = 10.25
$vbLabelText   $csharpLabel

这些行提供了关于三项产品的信息,包括其名称和价格。 对于批量操作,您可能需要一次性插入多行复制现有单元格。 在处理大型数据集时,建议使用 DataTable 集成以实现高效的数据操作。

如何计算 CSV 文件中的数值?

// Define the range for price values to be summed.
var range = workSheet["B2:B4"];

// Calculate the sum of prices.
decimal sum = range.Sum();
// Define the range for price values to be summed.
var range = workSheet["B2:B4"];

// Calculate the sum of prices.
decimal sum = range.Sum();
' Define the range for price values to be summed.
Dim range = workSheet("B2:B4")

' Calculate the sum of prices.
Dim sum As Decimal = range.Sum()
$vbLabelText   $csharpLabel

使用 LINQ,这段代码计算单元格 B2 到 B4 中的价格总和。总和存储在 sum 变量中。 IronXL 支持多种聚合函数,包括 Average、Min 和 Max。 对于更复杂的计算,您可以在单元格中直接使用 Excel 公式

为什么要在 WorkSheet 中更新计算值?

// Display the sum in the console.
System.Console.WriteLine(sum);

// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
// Display the sum in the console.
System.Console.WriteLine(sum);

// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
' Display the sum in the console.
System.Console.WriteLine(sum)

' Update the total price in the worksheet.
workSheet("B5").Value = sum
$vbLabelText   $csharpLabel

计算结果将输出到控制台,并填入工作表的 B5 单元格中。 此方法可确保数据的一致性,并支持基于计算值的条件格式化。 您还可以添加注释来解释计算过程或提供更多背景信息。

哪种方法可以将工作簿保存为 CSV 格式?

// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
' Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv")
$vbLabelText   $csharpLabel

最后,整个工作簿保存为名为"receipt.csv"的 CSV 文件。 IronXL 会自动处理从 Excel 格式到 CSV 的转换过程。您还可以保存为 JSON 或 XML 等其他格式,以适应不同的集成场景。 在生产环境中,请考虑启用密码保护以保障敏感数据的安全。

以下是演示所有讨论概念的完整代码示例:

using IronXL;
using System.Linq;

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

        // Add headers with formatting
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Price";

        // Style the header row
        workSheet["A1:B1"].Style.Font.Bold = true;
        workSheet["A1:B1"].Style.FillPattern = IronXL.Styles.FillPattern.Solid;
        workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";

        // Add product data
        workSheet["A2"].Value = "Item 1";
        workSheet["B2"].DoubleValue = 20.10;

        workSheet["A3"].Value = "Item 2";
        workSheet["B3"].DoubleValue = 15.50;

        workSheet["A4"].Value = "Item 3";
        workSheet["B4"].DoubleValue = 10.25;

        // Calculate and add total
        var priceRange = workSheet["B2:B4"];
        decimal total = priceRange.Sum();

        workSheet["A5"].Value = "Total";
        workSheet["B5"].Value = total;
        workSheet["A5:B5"].Style.Font.Bold = true;

        // Apply number formatting to prices
        workSheet["B2:B5"].FormatString = "$#,##0.00";

        // Save as CSV file
        workBook.SaveAs("receipt.csv");

        Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
    }
}
using IronXL;
using System.Linq;

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

        // Add headers with formatting
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Price";

        // Style the header row
        workSheet["A1:B1"].Style.Font.Bold = true;
        workSheet["A1:B1"].Style.FillPattern = IronXL.Styles.FillPattern.Solid;
        workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";

        // Add product data
        workSheet["A2"].Value = "Item 1";
        workSheet["B2"].DoubleValue = 20.10;

        workSheet["A3"].Value = "Item 2";
        workSheet["B3"].DoubleValue = 15.50;

        workSheet["A4"].Value = "Item 3";
        workSheet["B4"].DoubleValue = 10.25;

        // Calculate and add total
        var priceRange = workSheet["B2:B4"];
        decimal total = priceRange.Sum();

        workSheet["A5"].Value = "Total";
        workSheet["B5"].Value = total;
        workSheet["A5:B5"].Style.Font.Bold = true;

        // Apply number formatting to prices
        workSheet["B2:B5"].FormatString = "$#,##0.00";

        // Save as CSV file
        workBook.SaveAs("receipt.csv");

        Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
    }
}
Imports IronXL
Imports System.Linq

Public Class Program
    Shared Sub Main()
        ' Create a new workbook and worksheet
        Dim workBook As WorkBook = WorkBook.Create()
        Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Receipt")

        ' Add headers with formatting
        workSheet("A1").Value = "Product"
        workSheet("B1").Value = "Price"

        ' Style the header row
        workSheet("A1:B1").Style.Font.Bold = True
        workSheet("A1:B1").Style.FillPattern = IronXL.Styles.FillPattern.Solid
        workSheet("A1:B1").Style.BackgroundColor = "#CCCCCC"

        ' Add product data
        workSheet("A2").Value = "Item 1"
        workSheet("B2").DoubleValue = 20.1

        workSheet("A3").Value = "Item 2"
        workSheet("B3").DoubleValue = 15.5

        workSheet("A4").Value = "Item 3"
        workSheet("B4").DoubleValue = 10.25

        ' Calculate and add total
        Dim priceRange = workSheet("B2:B4")
        Dim total As Decimal = priceRange.Sum()

        workSheet("A5").Value = "Total"
        workSheet("B5").Value = total
        workSheet("A5:B5").Style.Font.Bold = True

        ' Apply number formatting to prices
        workSheet("B2:B5").FormatString = "$#,##0.00"

        ' Save as CSV file
        workBook.SaveAs("receipt.csv")

        Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}")
    End Sub
End Class
$vbLabelText   $csharpLabel

简而言之,这段代码使用 IronXL 在 Excel 工作表中创建一份基础收据,计算总价,将其打印到控制台,并将工作簿保存为 CSV 文件。收据包含"产品"和"价格"两列,并根据单项价格计算总价。 诸如"自动调整列宽"和"冻结窗格"等附加功能可提升最终输出效果。

一个名为"receipt.csv"的CSV文件在文本编辑器中打开,显示一张简单的收据,包含三件商品、它们的价格以及总计45.85。 一个 C# 程序的示例输出,该程序将收据数据写入 CSV 文件,其中包含标题行以及以逗号分隔的产品和价格数据

主要收获是什么?

这篇全面的文章强调了在 C# 中编写 CSV 文件的重要性,并使用 IronXL库讲解了具体实现过程。 它强调了这项技能在各类数据驱动型应用中的基础性作用,并展示了 IronXL 在 C# 生态系统中简化及优化数据处理任务的能力。 从项目设置到使用 IronXL 创建收据并将其保存为 CSV 文件的分步指南,将帮助您深入理解 C# 与 Excel 操作之间的无缝集成。

使用 IronXL 进行 CSV 操作的主要优势包括:

  • 简洁性:直观的 API,与 Excel 的单元格引用方式一致
  • 灵活性:支持多种数据类型和数字格式
  • 性能:高效处理海量数据集
  • 兼容性:支持跨平台及各 .NET 版本
  • 丰富功能:不仅支持 CSV 写入,还支持图表命名区域表格

凭借其多功能性和高效性,IronXL 已成为 C# 开发者的宝贵工具,帮助他们增强处理和导出普遍使用的 CSV 格式数据的能力,使其在各种软件开发场景中成为不可或缺的资产。

IronXL 提供了一种解决方案,可编程完成所有与 Excel 相关的任务,无论是公式计算字符串排序截取、查找和替换、合并与拆分,还是文件保存等。 您还可以设置单元格数据格式、处理超链接,甚至对行和列进行分组与取消分组,以便更好地组织数据。

有关完整的CSV文件书写教程,请访问此博客。 创建CSV文件的代码示例可以在以下博客中找到。 其他资源包括关于读取 CSV 文件以及将 DataTable 转换为 CSV 的教程。

IronXL 提供免费试用,让您可以评估其功能。 如果您发现它对您的项目有用,您可以从 $799 购买许可证。 该库还提供了全面的文档代码示例和 API 参考,助您快速入门。

常见问题解答

如何在 C# 中编写 CSV 文件而无需使用 Interop?

您可以利用 IronXL 库在 C# 中编写 CSV 文件而无需 Interop 支持。IronXL 允许您创建工作簿和工作表、添加数据,并使用其内置方法直接将其保存为 CSV 文件。

与 CSVHelper 相比,IronXL 在编写 CSV 文件方面有哪些优势?

IronXL 提供了更广泛的功能,不仅限于 CSV 编写,例如公式计算、单元格格式和多种 Excel 格式的导出,为开发人员提供了更全面的解决方案。

如何在 C# 项目中开始使用 IronXL?

要开始使用 IronXL,您需要通过 Visual Studio 中的 NuGet 包管理器安装它。创建一个新的 C# 项目,导航到“工具”,选择“NuGet 包管理器”,搜索“IronXL”并安装。

除了编写 CSV,IronXL 可以用于操作 Excel 文件吗?

是的,IronXL 能够处理多种 Excel 相关任务,例如读取和写入 Excel 文件、执行公式计算以及管理多个工作表中的数据。

如何在 C# 中使用 IronXL 向工作表添加数据?

要使用 IronXL 向工作表添加数据,请使用其标识符访问单个单元格,并使用 Value 属性分配值。然后,您可以按照所需格式保存工作表。

如何使用 IronXL 将工作簿保存为 CSV 文件?

在 IronXL 中创建并填充您的工作簿和工作表后,您可以使用 SaveAs 方法将其保存为 CSV 文件,并指定文件路径和格式。

IronXL 是否提供可供评估的试用版本?

是的,IronXL 提供免费试用版,允许开发人员在购买前探索和评估其功能。

如何使用 IronXL 计算工作表中的数字总计?

您可以使用 IronXL 利用 LINQ 计算工作表中的一系列单元格的总计,利用该库与 C# 的 LINQ 表达式的兼容性。

在使用 IronXL 编写 CSV 文件时,有哪些常见问题?

常见问题可能包括文件路径或权限不正确、数据格式不匹配或数据字段丢失。正确的错误处理和验证可以帮助减轻这些问题。

IronXL 能够高效处理 C# 项目中的大数据集吗?

是的,IronXL 被设计为能够高效地处理大数据集,允许开发人员读取、编写和操作大 Excel 文件而不会显著性能滞后。

Curtis Chau
技术作家

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

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

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我