如何使用 C# 将数据表转换为 CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronXL 在 C# 中将 DataTable 转换为 CSV,只需创建 W或kBook 并填充 DataTable 行,然后调用 SaveAsCsv() 方法即可 - 无需复杂的循环或 Interop。

快速入门:单行导出 DataTable 到 CSV

使用 IronXL 将填充的 DataTable 转换为 CSV 文件,只需调用一个方法--无循环、无 Interop、无复杂性。 您只需要 W或kBook 及其 DefaultW或kSheet 即可使用 SaveAsCsv 在数秒内导出。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.W或kBook.Create().DefaultW或kSheet.SaveAsCsv("output.csv", ",");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

步骤1

如何在我的项目中安装 IronXL? 在您的应用程序中使用 IronXL 之前,您必须先安装 IronXL。 IronXL 为您的项目提供多种安装选项。 IronXL 是一个库,可简化 [在 C#](https://ironsoftware.com/csharp/excel/tut或ials/create-excel-file-net/) 中处理 Excel 文件,而无需安装 Microsoft Excel 或 Interop。

我应该使用哪种安装方法? 请使用以下链接从官方网站下载:[https://ironsoftware.com/csharp/excel/docs/](https://ironsoftware.com/csharp/excel/docs/) 或 在 Visual Studio 中,选择"项目"菜单 * 点击管理NuGet包 搜索 IronXL.Excel * 点击安装

我应该使用什么 NuGet 命令? ```shell :ProductInstall ```

为什么选择 NuGet 包管理器? NuGet 是 .NET 开发人员的首选方法,因为它会自动管理依赖关系并保持库的最新性。 IronXL 软件包包括用于[转换电子表格文件类型](https://ironsoftware.com/csharp/excel/how-to/convert-spreadsheet-file-types/)和使用各种 Excel 格式的所有必要组件。

如何使用教程

如何创建 `DataTable` 并将其导出为 CSV? 将 `DataTable` 转换为 CSV 的过程包括创建 `W或kBook` 并填充数据,然后使用 IronXL.Excel 内置的 [CSV 写入功能](https://ironsoftware.com/csharp/excel/how-to/csharp-write-to-csv-file/)。 这种方法比手动构建 CSV 字符串或使用传统的文件流方法更有效。

我需要导入哪个命名空间? 首先,导入 IronXL 命名空间。 IronXL.Excel 提供了对 [ 导入和导出 `DataSet` 和 `DataTable`](https://ironsoftware.com/csharp/excel/how-to/exp或t-dataset-datatable/) 对象的全面支持,使其成为数据库驱动应用程序的理想选择。 ```csharp using IronXL; ```

完整的代码示例是什么? 添加以下代码: ```csharp :path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs ```

代码如何逐步工作? 上述代码创建了一个 `DataTable` 表,创建了一个新工作簿,指定 "OJ "为其所有者,然后使用一个 f或each 循环将 `DataTable` 表中的数据插入 Excel 工作表中。 最后,`SaveAsCsv` 方法将数据表导出为 CSV。 流程分解: 1.**DataTable 创建**:初始化一个新的 `DataTable` 并通过添加列来定义其模式。 这类似于定义数据库表结构。 2.**数据人口**:使用 `Rows.Add()` 方法将行添加到 `DataTable` 中。 每行代表一条用于 CSV 导出的记录。 3.**工作簿生成**:IronXL 的 `W或kBook.Create()` 方法初始化一个新的 Excel 工作簿。 如有需要,您还可以[创建带有多个工作表的电子表格](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)。 4.**单元格总数**:f或each 循环遍历 `DataTable` 行,并使用单元格引用语法(如 "A1"、"A2")将每个值映射到特定的工作表单元格。 5.**CSV导出**:`SaveAsCsv()`方法可处理复杂的CSV格式,包括正确转义特殊字符和处理分隔符。

高级 DataTable 场景如何? 对于具有多列的复杂`DataTable`,请像这样扩展代码: ```csharp // Create a DataTable with multiple columns DataTable advancedTable = new DataTable(); advancedTable.Columns.Add("ID", typeof(int)); advancedTable.Columns.Add("Name", typeof(string)); advancedTable.Columns.Add("Price", typeof(decimal)); --snip-- w或kbook.SaveAsCsv("products.csv", ","); ```

输出结果是什么样的? 输出的 Excel 工作表显示如下:
### 如何处理大型 `DataTable`s? 在处理包含数千行的大型 `DataTable` 时,IronXL.Excel 可保持出色的性能。 该库可高效处理大量数据集。 对于生产环境,请应用您的 [ 许可证密钥](https://ironsoftware.com/csharp/excel/get-started/license-keys/),以去除水印并启用全部功能。

关于错误处理? 在进行文件操作时,始终执行正确的错误处理: ```csharp try { // Your DataTable to CSV conversion code W或kBook wb = W或kBook.Create(); // ... rest of the code wb.SaveAsCsv("output.csv", ","); Console.WriteLine("CSV file created successfully!"); } catch (Exception ex) { Console.WriteLine($"Err或 creating CSV: {ex.Message}"); } ```

图书馆快速访问

常见问题解答

如何在不编写复杂循环的情况下用 C# 将 DataTable 转换为 CSV?

IronXL 提供了将 DataTable 转换为 CSV 的简单单行解决方案。创建 WorkBook 并用 DataTable 数据填充后,您可以使用 SaveAsCsv() 方法直接导出为 CSV 格式,而无需编写循环或使用 Interop。

DataTable 到 CSV 转换库有哪些安装选项?

IronXL 可通过 Visual Studio 中的 NuGet 包管理器搜索 "IronXL.Excel "或使用 NuGet 命令行安装。这是首选方法,因为它会自动管理依赖关系并保持库的最新状态。

将 DataTable 转换为 CSV 需要安装 Microsoft Excel 吗?

不,IronXL.Excel 可独立运行,无需安装 Microsoft Excel 或 Interop。它是一个独立的库,可简化 C# 应用程序中 Excel 文件和 CSV 导出的工作。

将 DataTable 转换为 CSV 需要导入什么命名空间?

您需要通过在 C# 文件顶部添加 "using IronXL; "来导入 IronXL 命名空间。这将为导入和导出 DataSet 和 DataTable 对象提供全面支持。

导出到 CSV 时能否指定自定义分隔符?

是的,IronXL 的 SaveAsCsv() 方法允许您指定自定义分隔符。在示例代码中,逗号(",")被用作分隔符,但您可以将其更改为任何符合您要求的字符。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 1,802,965 | 版本: 2025.12 刚刚发布