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

[复制链接]
查看11 | 回复9 | 2010-10-8 09:28:51 | 显示全部楼层 |阅读模式
请教各位朋友,我最近遇到一个问题
需求:将用户表中的 身份证 和 姓名 导出到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;
SELECTcode ||','|| TRIM(USERNAME) ||',' FROM userinfo

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


在网上也搜索了很多办法,有先生成html再手动copy的,或者用plsql手动复制到excel的。。。。我们想通过自动化的方法定时导出文件,请大家帮忙看看,多谢了
[ 本帖最后由 mckobe23 于 2010-9-26 13:38 编辑 ]
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
csv超出15位就会截断了,后面全是0,设格式也是没有用的,一保存原始文件都变了,但是excel可以设格式的
用sqlplus直接导出excel文件不就解决了吗?sqlplus导excel参考文档或在本版块搜索,很多的
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
如果是xls的话,前面的‘撇’也会被显示出来的
另外不是csv的话,怎么分字列显示呢,我们不想要html格式的
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
原帖由 mckobe23 于 2010-9-26 12:27 发表
如果是xls的话,前面的‘撇’也会被显示出来的
另外不是csv的话,怎么分字列显示呢,我们不想要html格式的

直接导出excel,你的sql要改改,不要'了,就没有'了啊,要不就导成txt,用excel打开
导excel是利用了导html,但是导出来的是xls,呵呵
[ 本帖最后由 dingjun123 于 2010-9-26 12:31 编辑 ]
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
多谢指点
我尝试了下,sql改了改,去掉了'号
SELECTcode,TRIM(USERNAME)FROM userinfo

但是是有问题的,直接生成excel不能像csv那样有列的分割,全显示在第一列里了

------------------------
另外,txt是开发不想要的,他们不愿意用手动的方式导入excel
需求方希望得到从plsql developer里面右键数据-》复制excel 这个功能生成的excel,我们分析了下文件,貌似前面加了'。但是我们不想手动去做这项工作
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
是excel的问题,请发到微软版
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
另外html格式不要用||连接,直接select * from t
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
如果发到微软版,基本会被建议手动修改格式等等,我们想用自动化的方式实现

附件图,就是html的,select code,username from userinfo的xls结果
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
顶下!
回复

使用道具 举报

千问 | 2010-10-8 09:28:51 | 显示全部楼层
追加了个问题

3.我不清楚,如果借助java或者php写到excel里面,会不会有同样的问题(在shell里面我前后加过空格,都被excel处理掉了)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行