C#读取CSV文件的方法
时间: 2023-07-30 12:06:09 浏览: 131
可以使用C#中的StreamReader和Split方法来读取CSV文件。下面是一个示例代码:
```csharp
using System.IO;
string filePath = "example.csv";
using (StreamReader reader = new StreamReader(filePath))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] values = line.Split(',');
// 处理每一行数据
foreach (string value in values)
{
// 处理每一个数据项
}
}
}
```
在上面的代码中,我们首先使用StreamReader来打开CSV文件并逐行读取它。然后,我们使用Split方法将每一行拆分成数据项,并使用foreach循环来处理每一个数据项。注意,这里假设CSV文件中的数据项都是以逗号分隔的,如果你的CSV文件使用了其他分隔符,需要相应地修改代码。
相关问题
C# 读取csv文件
以下是使用C#读取csv文件的示例代码:
```csharp
using System.IO;
using CsvHelper;
// 读取csv文件
using (var reader = new StreamReader("path/to/file.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
// 将csv文件中的数据读取到List中
var records = csv.GetRecords<MyClass>().ToList();
}
// 写入csv文件
using (var writer = new StreamWriter("path/to/file.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
// 将List中的数据写入csv文件
csv.WriteRecords(records);
}
```
其中,`MyClass`是你定义的一个类,用于存储csv文件中的数据。你需要根据csv文件的格式来定义`MyClass`类的属性。
C#读取CSV文件到datatable
### C# 将CSV文件读取到DataTable
为了实现将CSV文件的内容加载到`DataTable`对象中,可以创建一个方法来处理这一需求。此过程涉及解析每一行并将其转换成数据表中的记录。
下面是一个简单的例子,展示了如何利用C#读取CSV文件至`DataTable`:
```csharp
using System;
using System.Data;
using System.IO;
public class CsvToDataTableExample {
public static DataTable ReadCsvToDataTable(string filePath, bool isFirstRowHeader) {
var dataTable = new DataTable();
using (var reader = new StreamReader(filePath)) {
string[] headers = null;
while (!reader.EndOfStream) {
var line = reader.ReadLine();
var values = line.Split(',');
if (headers == null && isFirstRowHeader) {
headers = values;
foreach (string header in headers) {
dataTable.Columns.Add(header);
}
} else {
DataRow row = dataTable.NewRow();
for (int i = 0; i < values.Length; ++i) {
try {
row[i] = values[i];
} catch (Exception ex) {
Console.WriteLine($"Error !! : {filePath} because {ex.Message}"[^1]);
}
}
dataTable.Rows.Add(row);
}
}
}
return dataTable;
}
}
```
在这个实例里,如果指定了首行为列名,则会自动采用CSV的第一行作为`DataTable`的列定义;反之则默认为无头模式,即所有行均视为数据行。对于异常情况下的错误报告也进行了相应的处理。
阅读全文
相关推荐















