博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSV文件/内容中的逗号处理
阅读量:5906 次
发布时间:2019-06-19

本文共 908 字,大约阅读时间需要 3 分钟。

hot3.png

CSV全称是:Comma Separated Values 或者 Character Separated Values。

尽管第一种说法更常见,但我觉得还是第二种说法更确切一些,因为你可以使用其它字符做分隔符。

使用逗号做分隔符的CSV文件有一个好处:你可以直接用Excel打开。如果使用其它分隔符,比如“|”,你必须告诉Excel该文件使用“|”作分隔符,Excel才能把它导入进来。 

前几天,project manager告诉我:我们有许多CSV文件,都是使用“|”做分隔符,用Excel打开的时候比较麻烦,用户想在Excel中直接打开。这样就需要使用“,”做分隔符。但是文件中有些字段含有逗号,必须对这些逗号特殊处理,才能保证CSV文件在Excel中正确打开。他还给了我一个算法:

如果字段中有逗号(,),该字段使用双引号(")括起来;

如果该字段中有双引号,该双引号前要再加一个双引号,然后把该字段使用双引号括起来。

看完project manager的要求,我真是满头起包啊。在IT业混了十几年了,竟然不知道这样处理逗号。

举几个例子:

字段处理前

字段处理后

abc,d2

"abc,d2"

ab"c,d2

"ab""c,d2"

"abc

"""abc"

""

""""""

如果字段中有两个挨着的双引号,比如:aaa""ccc。这种情况不用特殊处理。这是我在写这篇博客的时候才想起来的,赶忙使用Excel测试了一下。还好,不用特殊处理就能正常打开,不然我还得改程序。当然了,如果你把它处理成:"aaa""""ccc" Excel也能正常打开。事后总结总结真是有好处啊。

另外,如果某字段第一个字符是空格,第二个字符是双引号,这种情况不用特殊处理。Project Manager在给我描述算法的时候,也举了一个字段只有一个双引号的例子,但他不小心在双引号前面加了个空格,把问题掩盖过去了。

我是在WinXP和MS Excel2007下测试的。如果运行在其他环境和应用程序下,还需进行测试,规则可能不一样。

转载于:https://my.oschina.net/u/2391658/blog/1589340

你可能感兴趣的文章
leetCode 203. Remove Linked List Elements 链表
查看>>
Changing SQL account name, password, or database server name in XenApp 6.5
查看>>
Cisco useful feature and commands
查看>>
Python import中相对路径的问题
查看>>
C语言入门篇-13
查看>>
天之痕
查看>>
当您尝试在 Outlook 中打开或保存电子邮件附件时出现错误消息:“无法创建文件...
查看>>
我的友情链接
查看>>
RAID-5的数据恢复!
查看>>
文件服务器迁移多种方案
查看>>
实战操作主机角色转移(二)
查看>>
OpenSSL杂记(CA证书)
查看>>
活动目录实战之三 不同地域安装额外域控制器(从媒介安装DC)
查看>>
EXchange 2010 sp1 实战部署之四 安装casarray(下)
查看>>
一些低级的东西
查看>>
我的友情链接
查看>>
[李景山php]每天laravel-20160902|Dispatcher-2
查看>>
Oracle RAC集群本地时间和远程时间不一致?
查看>>
权限设置
查看>>
我的友情链接
查看>>