新闻中心
.NET怎么将CSV文件读取到DataTable中
使用TextFieldParser可稳定读取CSV到DataTable,支持复杂格式。首先添加Microsoft.VisualBasic引用,用TextFieldParser设置逗号分隔,首行作列名,逐行读取数据并填充DataTable,能正确处理引号、换行和逗号;简单CSV可用StreamReader加Split解析;注意文件编码、内存占用,大文件应逐行处理,推荐UTF8编码,复杂场景优先选TextFieldParser或CsvHelper库。

在 .NET 中,可以使用 StreamReader 结合 TextFieldParser(来自 Microsoft.VisualBasic.FileIO 命名空间)或手动解析的方式将 CSV 文件读取到 DataTable 中。推荐使用 TextFieldParser,因为它能正确处理包含逗号、换行或引号的字段。
使用 TextFieldParser 读取 CSV 到 DataTable
这是最稳定且推荐的方法,尤其适用于格式复杂的 CSV 文件。
步骤:
- 添加对
Microsoft.VisualBasic的引用(即使在 C# 项目中也可用) - 使用
TextFieldParser设置分隔符并逐行读取 - 第一行通常作为列名
- 后续行作为数据插入 DataTable
示例代码:
using System.Data;
using Microsoft.VisualBasic.FileIO;
<p>DataTable LoadCsvToDataTable(string filePath)
{
DataTable dt = new DataTable();</p><pre class="brush:php;toolbar:false;">using (TextFieldParser parser = new TextFieldParser(filePath))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
// 读取第一行作为列名
if (!parser.EndOfData)
{
string[] fields = parser.ReadFields();
foreach (string field in fields)
{
dt.Columns.Add(field);
}
}
// 读取剩余行作为数据
while (!parser.EndOfData)
{
string[] fields = parser.ReadFields();
dt.Rows.Add(fields);
}
}
return dt;}
Musho
AI网页设计Figma插件
76
查看详情
手动使用 StreamReader 解析(简单
CSV)
如果 CSV 文件格式简单(无引号包裹的逗号或换行),可以直接用 StreamReader 和 Split(',')。
示例代码:
using System.IO;
using System.Data;
<p>DataTable LoadCsvSimple(string filePath)
{
DataTable dt = new DataTable();
string[] lines = File.ReadAllLines(filePath);</p><pre class="brush:php;toolbar:false;">if (lines.Length == 0) return dt;
// 第一行作为列名
string[] headers = lines[0].Split(',');
foreach (string header in headers)
{
dt.Columns.Add(header);
}
// 添加数据行
for (int i = 1; i < lines.Length; i++)
{
string[] data = lines[i].Split(',');
dt.Rows.Add(data);
}
return dt;}
注意事项
实际使用时需要注意以下几点:
- CSV 文件编码问题:建议使用
new StreamReader(filePath, Encoding.UTF8)明确指定编码 - 字段中包含逗号时(如 "Smith, John"),必须用 TextFieldParser 才能正确解析
- 大文件建议逐行读取,避免一次性加载到内存
- 可考虑使用第三方库如 CsvHelper,功能更强大
基本上就这些。对于大多数场景,使用 TextFieldParser 是最稳妥的选择。
以上就是.NET怎么将CSV文件读取到DataTable中的详细内容,更多请关注其它相关文章!
# csv
# .net
# 正确处理
# 换行
# asic
# 内存占用
# csv文件
# c#
# stream
# microsoft
# 编码
# seo院校
# 栾城区外贸网站推广报价
# 超越同行网站优化方案
# 淮北矩阵营销推广加盟
# 大数据财务网站建设要求
# 马尾seo公司
# 泌阳网站建设电话
# 同城推广团队营销
# 福州优化大师网站官网
# 盐山网站优化哪里有
# 可以直接
# 中文网
# 要注意
# 相关文章
# 适用于
# 推荐使用
# 大文件
# 这是
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
聚水潭ERP登录页面入口 聚水潭ERP官网登录界面
Typer应用中灵活处理命令行参数的令牌化与解析
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
Golang如何安装Swagger工具_GoSwagger文档生成环境
EMS快递官网app_中国邮政速递物流手机客户端
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
Go RPC HTTP服务正确实现与常见陷阱解析
在React函数组件中利用原生HTML5进行邮箱地址验证
HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全
在VS Code中配置和运行Dart程序的完整步骤
c++ 获取系统当前时间 c++时间戳获取方法
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
红果短剧网页版官网入口 官方最新网址发布
如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题
妖精动漫免费平台 妖精动漫官网资源观看网址
Shopware订单对象中获取产品自定义字段的正确方法
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
顺丰快递查询系统 官方正版查询入口
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录
《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
AO3最新官网入口公告_2025AO3镜像站实时查询方法
品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程
抖音网页版平台入口 抖音网页版官网在线访问教程
Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏
小米汽车11月交付量突破40000台!雷军:将继续努力
初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解
解决Bootstrap卡片顶部边距导致背景图下移的问题
KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明
俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问
利用Bokeh CustomJS动态控制DataTable列可见性
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
126邮箱手机版登录官网2026_126手机邮箱免费入口最新
小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口
Django表单提交验证失败后保持字段值不刷新
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
C++ vector二维数组定义_C++ vector of vector用法
谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作
如何在J*a中使用Locale处理多语言环境
windows10怎么查看本机ip_windows10命令提示符ipconfig使用
WordPress插件开发:正确注册卸载钩子与避免常见陷阱
深入理解Go语言中的指针类型:以*string为例
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站
12306选座系统怎么选连座_12306选座多人连坐操作方法
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器


2025-11-01
浏览次数:次
返回列表
CSV)