关于QT读取CSV文件

最近在接触CSV文件的应用,也查看了好多网上的资料,遇到了关于换行符的问题,现总结如下:
一、CSV文件的特点
CSV文件是文本类型的数据文件,因此具有读写速度快、格式相对标准等特点,适用于多种场合的数据读写及分析。CSV文件也叫逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。
二、规则
在百度百科上有较为详细的规则介绍如下:
1 开头是不留空,以行为单位。
2 可含或不含列名,含列名则居文件第一行。
3 一行数据不跨行,无空行。
4 以半角逗号(即,)作分隔符,列为空也要表达其存在。
5列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
6文件读写时引号,逗号操作规则互逆。
7内码格式不限,可为 ASCII、Unicode 或者其他。
8不支持数字
9不支持特殊字符
但这里有几个问题,一是其中的第3点说一行数据不跨行,我最近就遇到了,CSV文件真的的可以跨行;二是第4点中以半角逗号作为分隔符,但没有给出单元格中存在半角逗号的情况;三是第5点对于半角引号的描述不准确。
现对上述三点进行解释:
1.CSV某个单元格中可以存在换行符。(对于这种情况我也比较无奈,本来我也以为不会出现这种情况,但偏偏在实战中遇到了),当CSV某单元格中存在换行符,无需转义,但要使用半角引号将整个单元格包含起来。
2.当CSV中某单元格存在半角引号时,要对其进行转义,即使用"“来表示一个”,同时要用半角引号将整个单元格包含起来。
3.当CSV中某单元格存在半角逗号时,无需转义,但要使用半角引号将整个单元格包含起来。

CSV文件在记事本中打开
CSV文件在EXCEL中打开
上面两幅图片可以看出单元格中存在半角逗号、半角引号、换行符时在记事本和EXCEL中的显示状态。
三、解决方法
请参考https://download.csdn.net/download/weixin_46023018/12157939

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页