日期:2014-05-18  浏览次数:21634 次

导出csv文件,如何实现用excel打开后,身份证号显示正常?
导出csv文件,如何实现用excel打开后,身份证号显示正常?
---------------------------------------------------
在程序中导出 csv 文件,csv实际上就是一个文件文件,
如果文件内容 如下:
姓名,身份证号
王江民,000123456789123456789
则用excel打开后,身份证号会变成科学计数法。

如果文件内容如下:
姓名,身份证号
王江民,'000123456789123456789

注意,我在身份证号前加了一个单引号
这样的csv用excel打开后,确实不以科学计数法显示了,
但是前面会多出一个单引号。

这样也不行呀,这个单引号不会消失的呀。
我试过了,如果在excel环境下,为一个数字串或是文本字符串前加一个单引号,这个单引号是不显式的。
但是如果csv文件中,字符串前有单引号,用excel打开后依然显示,所以我认为在csv文件中,给身份证号前面加上单引号并不可行,

但是有什么更好的办法呢?
这个程序要从数据库中导出 csv 格式的数据。(注意,不是导出 excel 格式的,而是导出csv格式的)
如何能保证这个csv文件,用excel打开后,身份证号显示正常呢?

------解决方案--------------------
excel列的格式必须是文本格式才能正确显示的
------解决方案--------------------
不是单引号',而是`(和~在同一键)
或者
姓名,身份证号
王江民,="000123456789123456789"

姓名,身份证号
王江民,`000123456789123456789
------解决方案--------------------
不太清楚。
反正看lisp/scheme时就是这样:
`(+ 1 2) => (+ 1 2)
(+ 1 2) => 3