跳至页脚内容
USING IRONXL

如何在 C# 中写入 CSV 文件

要在C#中写入CSV文件,可以使用IronXL库创建一个工作簿,使用简单的语法如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和控制台 图 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 尤为实用。

我如何创建WorkSheet

// 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工作簿(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 操作之间的无缝集成。 using IronXL 进行 CSV 操作的主要优势包括:

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

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

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

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

IronXL 提供免费试用,让您可以评估其功能。 如果您发现它对您的项目有用,您可以从$999开始购买许可证。 该库还提供了全面的文档代码示例和 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 小时在线。
聊天
电子邮件
打电话给我