sqlplus导出身份证到excel中,科学计数法问题 —— 问题贴
时间:2010-10-09 来源:mckobe23
问题
-----------------------------------------------------------------------------------------------------------------------
需求:将用户表中的 身份证 和 姓名 导出到excel表中csv文件
问题:身份证数据包含纯18位数字 和 数字+结尾字母 的两种情况
1.纯数字导出后,双击csv文件,被科学计数法格式化了,而且后5位置0,如果用文本打开csv则不存在这个问题
2.第二种结尾由于带有字母,所以显示正常
3.我不清楚,如果借助java或者php写到excel里面,会不会有同样的问题(在shell里面我前后加过空格,都被excel处理掉了)
我们导出的方法是shell里面执行sqlplus <<eof的方式,下面是我的脚本主体部分:
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
set escape
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
sqlplus导出身份证到excel中,科学计数法问题