.NET Core导出CSV文件
CSV(Comma-Separated Values)是一种常见的文本文件格式,用于将结构化数据以逗号分隔的方式存储。在.NET Core中,我们可以使用各种方式来导出CSV文件,包括手动构建CSV内容、使用第三方库等。本文将介绍使用.NET Core导出CSV文件的几种方法,并提供相应的代码示例。
1. 手动构建CSV内容
最简单的方法是手动构建CSV内容,并将其写入文件。以下是一个示例代码,演示了如何导出包含固定列的CSV文件。
using System.IO;
string filePath = "data.csv";
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("Name,Email,Phone");
writer.WriteLine("John Doe,john@example.com,1234567890");
writer.WriteLine("Jane Smith,jane@example.com,9876543210");
}
在上述代码中,我们首先创建一个StreamWriter
对象,并指定要写入的文件路径。然后,我们使用WriteLine
方法写入CSV文件的每一行。在CSV文件中,每个字段之间使用逗号进行分隔。
2. 使用CsvHelper库
[CsvHelper](
要使用CsvHelper库,可以通过NuGet包管理器或使用.NET CLI安装CsvHelper。以下是使用CsvHelper导出CSV文件的示例代码:
using CsvHelper;
using CsvHelper.Configuration;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
public class Person
{
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
string filePath = "data.csv";
List<Person> people = new List<Person>
{
new Person { Name = "John Doe", Email = "john@example.com", Phone = "1234567890" },
new Person { Name = "Jane Smith", Email = "jane@example.com", Phone = "9876543210" }
};
using (StreamWriter writer = new StreamWriter(filePath))
{
using (CsvWriter csvWriter = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csvWriter.WriteRecords(people);
}
}
在上述代码中,我们首先定义了一个Person
类,该类表示CSV文件中的每一行数据。然后,我们创建了一个StreamWriter
,并将其传递给CsvWriter
。使用CsvWriter
的WriteRecords
方法,我们可以将整个集合写入CSV文件。
3. 使用EPPlus库
如果需要导出复杂的CSV文件,包含多个工作表、单元格格式等,可以考虑使用[EPPlus](
以下是使用EPPlus导出CSV文件的示例代码:
using OfficeOpenXml;
using System.Collections.Generic;
using System.IO;
string filePath = "data.csv";
List<string[]> data = new List<string[]>
{
new string[] { "Name", "Email", "Phone" },
new string[] { "John Doe", "john@example.com", "1234567890" },
new string[] { "Jane Smith", "jane@example.com", "9876543210" }
};
using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath)))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
for (int i = 0; i < data.Count; i++)
{
for (int j = 0; j < data[i].Length; j++)
{
worksheet.Cells[i + 1, j + 1].Value = data[i][j];
}
}
package.Save();
}
在上述代码中,我们创建了一个ExcelPackage
对象,并指定要保存的文件路径。然后,我们添加一个工作表,并使用嵌套循环将数据写入每个单元格中。最后,通过调用Save
方法将修改后的Excel文件保存为CSV格式。
总结
本文介绍了使用.NET Core导出CSV文件的几种方法,包括手动构建CSV内容、使用CsvHelper库和EPPlus库。根据实际需求,选择合适的方法来导出CSV文件。无论选择哪种方法,都可以轻松地使用.NET