sqlplus导出身份证到excel中,科学计数法问题 —— 问题贴

问题

-----------------------------------------------------------------------------------------------------------------------

需求:将用户表中的 身份证 和 姓名 导出到excel表中csv文件


问题:身份证数据包含纯18位数字 和 数字+结尾字母 的两种情况
1.纯数字导出后,双击csv文件,被科学计数法格式化了,而且后5位置0,如果用文本打开csv则不存在这个问题
2.第二种结尾由于带有字母,所以显示正常
3.我不清楚,如果借助java或者php写到excel里面,会不会有同样的问题(在shell里面我前后加过空格,都被excel处理掉了)


我们导出的方法是shell里面执行sqlplus <

exp.sh

# Export data
sqlplus -S /nolog << EOF
conn $user/$pass
@main.sql
EOF


mian.sql

set linesize 200
set term off verify off feedback off pagesize 0
set markup html off entmap Off spool on preformat off
spool res.csv
@test.sql
spool of


test.sql

SELECT '身份证,姓名,' FROM dual;
SELECT code ||','|| TRIM(USERNAME) ||',' FROM userinfo


+++++++++++++++++++++++++++++++++++++++++++

其中我们前面加过‘撇号(也就是单引号)’,但是没用,直接打开csv,单引号也被显示出来了 SELECT ''''|| code ||','|| TRIM(USERNAME) ||',' FROM userinfo


在网上也搜索了很多办法,有先生成html再手动copy的,或者用plsql手动复制到excel的。。。。我们想通过
自动化的方法定时导出文件



解决方法

-----------------------------------------------------------------------------------------------------------------------

使用Java的excel开发包poi定制excel单元格为文本格式,强制身份证字段sheet左上角有个蓝色的小箭头


具体效果图可参见15楼内容 http://www.itpub.net/thread-1352270-2-1.html


原帖地址 http://www.itpub.net/thread-1352270-1-1.html


[@more@]sqlplus导出身份证到excel中,科学计数法问题
请使用浏览器的分享功能分享到微信等