Oracle 如何实施";“文本导入向导”;shell脚本中excel的功能
我尝试从shell脚本生成excel工作表。这必须包含查询的结果 我确实得到了一份excel表格。但是当我打开它时,列并没有分开,而是查询输出的所有字段都出现在第一列中 例如: 下面粘贴的是查询的结果。当我直接将其粘贴到excel中而不导出时,它们将被放置在excel的第一列中 在MS Excel 2007中,我们将获得“粘贴选项”,在该选项中,我们可以选择“使用文本导入向导”在Excel中将字段分隔为列 我需要通过shell脚本实现这个功能 你能帮我解决这个问题吗Oracle 如何实施";“文本导入向导”;shell脚本中excel的功能,oracle,shell,excel-2007,Oracle,Shell,Excel 2007,我尝试从shell脚本生成excel工作表。这必须包含查询的结果 我确实得到了一份excel表格。但是当我打开它时,列并没有分开,而是查询输出的所有字段都出现在第一列中 例如: 下面粘贴的是查询的结果。当我直接将其粘贴到excel中而不导出时,它们将被放置在excel的第一列中 在MS Excel 2007中,我们将获得“粘贴选项”,在该选项中,我们可以选择“使用文本导入向导”在Excel中将字段分隔为列 我需要通过shell脚本实现这个功能 你能帮我解决这个问题吗 COL1
COL1 COL2 COL3
---------------------- ---- ----------------------
12 a 1
198 b 2
159 ast 3
434 rd 4
56 5
1031 6
谢谢,
Savitha假设您可以生成一个
.csv
文件,您的查询只需将字段与逗号(或其他分隔符,如果您愿意)连接在一起;比如:
select col1 ||','|| col2 ||','|| col3
from my_table
where ...
如果任何列可能包含逗号,则可以将其括在双引号中,以便Excel不会将一个值视为多个列:
select '"'|| col1 ||'","'|| col2 ||'","'|| col3 ||'"'
from my_table
where ...
从Oracle的角度来看,这将成为一个单一的结果列,这意味着您的列标题将不会按您所希望的那样显示。假设需要它们,则需要单独生成它们(在实际查询之前):
或
您可能还需要调整一些SQL*Plus设置,如
设置嵌入
,设置行大小
,设置页面大小
,设置反馈关闭
。。。等,使其看起来完全正确。您必须创建一个本机Excel文件(.xls或.xlsx等),还是可以生成一个CSV文件?我可以生成.CSV格式的文件。在csv文件中,字段是分开的,但我尝试以相同的格式生成xls。它不起作用。我们不能在xls中实现这个功能吗?如果你真的需要它作为.xls,看看上面的答案是否对你有帮助。没有专门生成.xls文件的内置方法,但是XML路径看起来很有前途。如果合适的话,您还可以在shell脚本中对CSV文件进行后期处理;谷歌csv2xls
(我不能保证任何结果!)。
select 'COL1,COL2,COL3' from dual;
prompt COL1,COL2,COL3