导出csv文件,如何实现用excel打开后,身份证号显示正常?

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

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

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

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

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

7 个解决方案

#1


excel列的格式必须是文本格式才能正确显示的

#2


不是单引号',而是`(和~在同一键)
或者
姓名,身份证号
王江民,="000123456789123456789"

姓名,身份证号
王江民,`000123456789123456789

#3


哇学习了,我也遇到了 谢谢楼主

#4


引用 2 楼 huntor 的回复:
不是单引号',而是`(和~在同一键)

`这个符号有什么特别呢?也是显示在身份证号前呀。
不过我发现腾讯的财付通的下载的csv文件,每个列前面都加了一个 ` ,
我不知为什么加这个符号,与单引号的作用不是相同吗?

这个符号有什么特别之处吗?

听你这么一说,感觉这个  ` 确有特别之处,请指教。

#5


听你这么一说,感觉这个  ` 确有特别之处,请指教。

#6


不太清楚。
反正看lisp/scheme时就是这样:
`(+ 1 2) => (+ 1 2)
(+ 1 2) => 3

#7


引用 6 楼  的回复:
不太清楚。
反正看lisp/scheme时就是这样:
`(+ 1 2) => (+ 1 2)
(+ 1 2) => 3

`这个符号在EXCEL里还是显示的啊

#1


excel列的格式必须是文本格式才能正确显示的

#2


不是单引号',而是`(和~在同一键)
或者
姓名,身份证号
王江民,="000123456789123456789"

姓名,身份证号
王江民,`000123456789123456789

#3


哇学习了,我也遇到了 谢谢楼主

#4


引用 2 楼 huntor 的回复:
不是单引号',而是`(和~在同一键)

`这个符号有什么特别呢?也是显示在身份证号前呀。
不过我发现腾讯的财付通的下载的csv文件,每个列前面都加了一个 ` ,
我不知为什么加这个符号,与单引号的作用不是相同吗?

这个符号有什么特别之处吗?

听你这么一说,感觉这个  ` 确有特别之处,请指教。

#5


听你这么一说,感觉这个  ` 确有特别之处,请指教。

#6


不太清楚。
反正看lisp/scheme时就是这样:
`(+ 1 2) => (+ 1 2)
(+ 1 2) => 3

#7


引用 6 楼  的回复:
不太清楚。
反正看lisp/scheme时就是这样:
`(+ 1 2) => (+ 1 2)
(+ 1 2) => 3

`这个符号在EXCEL里还是显示的啊