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 更为简单方便, 导出文件是首选。
但你是否就对它了如指掌?
- 它有哪些特性?有哪些需要注意的地方?
- 如何用 C# 或其它语言将数据库中的表(或DataTable)转成 .CSV 文件?
- 如何用 C# 将 .CSV 文件导入到数据库的表(或DataTable)?
作为一个程序员, 了解上面的 3 点, 基本上也就够用了……
- CSV 的基本规则
- 开头是不留空,以行为单位。
- 可含或不含列名,含列名则居文件第一行。
- 一行数据不跨行,无空行。
- 以半角逗号(即,)作分隔符,列为空也要表达其存在。
- 列内容如存在半角逗号(即,)则用半角双引号(即"")将该字段值包含起来。
- 列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
- 文件读写时引号,逗号操作规则互逆。
- 内码格式不限,可为 ASCII、Unicode 或者其他。
- 不支持特殊字符
百闻不如一试, 在 Excel 中编辑一个文件, 然后另存为 1.csv 看一下结果:
由于规则主要用的符号是半角逗号和半角双引号,仅这两种符号会需要特殊处理, 所以下面的例子中只用到这两种符号。
左右对比一下, 生成的规则也就比较清楚了——
如果单元格中有半角逗号或者双引号, 必须在前后加上半角双引号
如果单元格中有半角双引号, 必须将半角双引号转义为两个半角双引号
先讲到这里吧, 下一讲将讲述如何用 C# 导出CSV.