SAS在导出时截断

时间:2014-04-15 07:28:27

标签: excel sas

我有一个SAS数据集,第一列是20位数的客户帐户ID。 我需要将表的输出写入excel文件。当我写入excel文件时,帐户ID被截断,最后几位数字变为零。

请帮忙。我需要用excel格式和文本写成列格式。

2 个答案:

答案 0 :(得分:1)

您可以使用ODS HTML将数据导出到Excel,使用.xls扩展名而不是.htm - 内容仍然是HTML,但Excel将其解释为一个漂亮的表。然后,您可以根据需要应用常用的ODS样式,标题等。

示例:

data dummy ;
  do d = 1 to 20 ;
    longnum = put(ranuni(0)*(10**20),z20.) ;
    output ;
  end ;
run ;

ods html body="c:\temp\LongNumbers.xls" ;
proc report data=dummy nowd ;
  define longnum / style={tagattr="style='mso-number-format:""\@""'"} ;
run ;
ods html close ;

可以使用更多mso-number-format个值:

  • 纯文本:mso-number-format:\ @
  • 将数字格式化为2位小数:mso-number-format:“0 \ .00”
  • 带小数点后2位的逗号分隔符:mso-number-format:\#\,\#\#0 \ .00
  • 日期\时间格式:
    • 美国日期:mso-number-format:mm \ / dd \ / yy
    • 月份名称:mso-number-format:d \\ - mmm \\ - yyyy
    • 日期和时间:mso-number-format:d \ / m \ / yyyy \ h \:mm \ AM \ / PM
    • 短日期:mso-number-format:“短日期”(05/06/2011)
    • 中日期:mso-number-format:“Medium Date”(10-jan-2011)
    • 短时间:mso-number-format:“短时间”(8:67)
    • 中等时间:mso-number-format:“中等时间”(8:67 AM)
    • 长时间:mso-number-format:“长时间”(8:67:25:00)
  • 百分比:mso-number-format:百分比(到两位小数)
  • 科学记数法:mso-number-format:“0 \ .E + 00”
  • 分数 - 最多3位数:mso-number-format:“\#\ ??? \ / ???”
  • 货币(12.76英镑):mso-number-format:“\ 0022£\ 0022 \#\,\#\#0 \ .00”
  • 2位小数,红色和有符号的负数:mso-number-format:“\#\,\#\#0 \ .00_ \; \ [Red \] \ - \#\,\ #\#0 \ .00 \“(1.86-1.66)
  • 会计格式-5,(5):mso-number-format:“\\#\\,\\#\\#0 \\。00 _ \\)\\; \\ [黑色\\] \\\\(\\#\\,\\#\\#0 \\。00 \\\\)”

答案 1 :(得分:0)

这取决于Excel如何表示数字数据。将文件从SAS导出为CSV,然后将其导入Excel。为ID字段选择列类型时,请选择“文本”。