CSV探秘(一)—— CSV的基本规则

来源:互联网 发布:李小龙身体数据 编辑:程序博客网 时间:2024/05/23 15:36

Excel 文件好用, 但是体积庞大, 用程序导入导出时占用内存惊人(NPOI, CloseXML等都一个德性), 一百万条的记录把内存占完没商量!

而且 Excel 还有一个弱点:行数有限制。

Excel 07-2003一个工作表最多可有65536行,行用数字1—65536表示;最多可有256列,列用英文字母A—Z,AA—AZ,BA—BZ,……,IA—IV表示;一个工作簿中最多含有255个工作表,默认情况下是三个工作表;
Excel 2007及以后版本,一个工作表最多可有1048576行,16384列;


CSV是一种简单的数据文件交换方式,体积小、操作占用内存小、 生成速度快、行数无限制

(但超过Excel最大行时,Excel也无法正常打开,只能用程序或者手工操作 )

在一般情况下比Excel 更为简单方便, 导出文件是首选。

但你是否就对它了如指掌?

  1. 它有哪些特性?有哪些需要注意的地方?
  2. 如何用 C# 或其它语言将数据库中的表(或DataTable)转成 .CSV 文件?
  3. 如何用 C# 将 .CSV 文件导入到数据库的表(或DataTable)?
作为一个程序员, 了解上面的 3 点, 基本上也就够用了……

  •  CSV 的基本规则
  1. 开头是不留空,以行为单位。
  2. 可含或不含列名,含列名则居文件第一行。
  3. 一行数据不跨行,无空行。
  4. 以半角逗号(即,)作分隔符,列为空也要表达其存在。
  5. 列内容如存在半角逗号(即,)则用半角双引号(即"")将该字段值包含起来。
  6. 列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
  7. 文件读写时引号,逗号操作规则互逆。
  8. 内码格式不限,可为 ASCII、Unicode 或者其他。
  9. 不支持特殊字符
百闻不如一试, 在 Excel 中编辑一个文件, 然后另存为 1.csv 看一下结果:
由于规则主要用的符号是半角逗号和半角双引号,仅这两种符号会需要特殊处理, 所以下面的例子中只用到这两种符号。


左右对比一下, 生成的规则也就比较清楚了——
如果单元格中有半角逗号或者双引号, 必须在前后加上半角双引号
如果单元格中有半角双引号, 必须将半角双引号转义为两个半角双引号

先讲到这里吧, 下一讲将讲述如何用 C# 导出CSV.



0 0
原创粉丝点击