Sql脚本在excel输出文件中显示前导0

时间:2011-03-29 18:33:25

标签: excel shell sql-scripts

我有sql脚本“example.sql”:SPOOL &1 Select '<.TR>'||'<.TD align="left">'||column_name||'<./TD>'||'<.TR>' from table1; spool off..将内容转储到cshell脚本“getdata.csh”这就是我提取数据从sql脚本到csh脚本sqlplus $ORA_UID/$ORA_PSWD @${SQL}example.sql ${DATA}${ext}来自它的数据我通过组合3个文件头创建一个excel文件。具有查询结果和trailer.html <html> <.head> <.title) Title <./title> <./head> <.body> <.table > <.tr> <.th>Column Name<./th> <.tr>的html <./tr> <./table> <./body> <./html> ext文件,我将此文件另存为.xls并通过电子邮件作为附件发送..现在我的问题是Column_name的数据以0开头但是当我打开excel文件时,前导0已经不见了但是我想保留那个0 ..所以我可以添加什么来确保电子邮件附加的excel文件在另一侧打开时会有前导0 .. plz任何帮助都会很好

4 个答案:

答案 0 :(得分:0)

使用oracle:

假设您的属性名为'number'

select '0' || to_char(number) as number
from table mytable

答案 1 :(得分:0)

使用excel对象模型或宏进入excel文件抓取列并更改格式。

在你的情况下:

Range("A1").Numberformat = "@"

答案 2 :(得分:0)

如果你正在动态生成excel文件,你可以在撇号前加上这些数字,即'

这会导致Excel将数字视为字符串。唯一的缺点是如果工作表有任何使用这些数字的方程式,它可能会导致一些副作用。

答案 3 :(得分:0)

我以前处理过这个问题,问题严格来说是Excel格式的“功能”。不幸的是,我没有资源来完全测试答案,但这里有两件事你可以尝试。

  1. 在cshell脚本中添加一个步骤,用=“”,
  2. 包围$ 1值

    awk'{$ 1 =“= \”“$ 1”\“”; print $ 0}'inFile&gt;不过outFile

    缺点是你现在告诉Excel将这些值视为字符串。如果您对这些值进行任何花哨的计算,您可能会遇到不同的问题。

    1. #2(为什么SO格式总是将编号的块重新编号为1!; - !)。由于这实际上是一个Excel格式问题而且在我的回忆中,一旦文件被打开和处理,你无法检索前导零,我似乎记得我有一个预先格式化黑色工作表的技巧,将其保存为模板,然后将文件加载到模板中。我记得那也很棘手,所以不要指望它能奏效。如果上面的#1不起作用,您可能需要咨询Excel用户的最佳策略。
    2. 如果您向他们寻求帮助,您可能还想告诉别人您正在使用的Excel版本。

      我希望这会有所帮助。

      P.S。因为你似乎是一个新用户,如果你得到一个帮助你的答案,请记住将其标记为已接受,和/或给它一个+(或 - )作为一个有用的答案