C# 解析csv文件

csv是以逗号未分割符的文本文件,其格式为,以下是百科提供的格式规则,不过也是标准规则了。

1 开头是不留空,以行为单位。
2 可含或不含列名,含列名则居文件第一行。
3 一行数据不跨行,无空行。
4 以半角逗号(即,)作分隔符,列为空也要表达其存在。
5 列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。
6 列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
7 文件读写时引号,逗号操作规则互逆。
8 内码格式不限,可为 ASCII、Unicode 或者其他。
9 不支持特殊字符

如"a""b""c",,"nm,m" .解析出来应该是: a"b"c  空列  nm,m 

关于csv解析有很多种方法,我在解析时查找了很多资料,我发现的主要有三种,是:

1.使用split函数先根据","分割,然后再根据""进行必要的链接,这种方法过于粗糙,因为一个字段中可能包含逗号和双引号,所以会造成逻辑混乱。

2.使用正则表达式,由于csv字段比较复杂,正则表达式就得复杂,完整,我找了很多正则表达式,有的不完全,强大的我实在看不懂。

3.第三种方式就是一个字符一个字符的解,读一段内容到一个buffer,然后一个字符一个字符的解,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值