SAS将数据集导出为csv或excel,保留换行符

问题描述 投票:0回答:1

我试图将我的数据集从SAS导出到excel要么是csv还是xls格式,但是当我这样做时,带有换行符的列会弄乱我的excel。有没有办法将SAS数据集导出为ex​​cel保留换行符?我还需要显示标签而不是列名称,数据集相当大。 150,000行。

这是我做的,

proc export data=Final_w_label
outfile='work/ExtractExcel.csv'
dbms=csv label replace;
run; quit;

先感谢您。

csv sas export
1个回答
0
投票

有关示例数据,请参阅帖子底部。

创建Excel将轻松打开并显示嵌入换行符的导出的一种有效方法是使用XML。

libname xmlout xmlv2 'c:\temp\want.xml';
data xmlout.want;
  set have;
run;
libname xmlout;

在Excel(365)中执行文件/打开,选择want.xml文件,然后在引发的辅助As an XML table对话框中选择Open XML

其他方法

还有其他方法可以将SAS数据移动到Excel可以解析的表单中。 Proc EXPORT将在字符变量中创建一个嵌入了回车符的文本文件(Excel在单元格换行符中使用)

proc export dbms=csv data=have label replace file='c:\temp\want.csv';
run;

导出的问题是Excel不会使用它的向导正确导入数据。可能有一个vbs解决方案用于读取导出,但这可能比值得更麻烦。

另一种形式的出口是dbms=excel创建.xlsx文件:

proc export dbms=excel data=have label replace file='c:\temp\want.xlsx';
run;

可以通过Excel打开此导出,列将全部正确。但是,具有嵌入式回车符的单元格中的数据值的初始视图显示似乎不具有换行符。使用F2编辑模式进一步检查将显示那些嵌入的新行,并按Enter键(接受编辑)将导致单元格视图显示嵌入的换行符。您不希望按预期方式对每个单元格进行F2渲染。

样本数据

data have (label="Lines within stanza are separated by newline character");
  attrib 
    id length=8 label='Identity'
    name length=$50 label='Poem name'
    auth length=$50 label='Author'
    stanza1-stanza20 length=$250;
  ;

  array stz stanza:;

  id + 1;
  section = 1;

  infile cards eof=last;

  do while (1=1);
    linenum + 1;
    input;
    select;
      when (_infile_ = '--') leave;
      when (linenum = 1) name = _infile_;
      when (linenum = 2) auth = _infile_;
      when (_infile_ = '') section + 1;
      otherwise stz(section) = catx('0d'x, stz(section), _infile_);
    end;
  end;

last:

  output;

  datalines4;
Trees
Joyce Kilmer
I think that I shall never see
A poem lovely as a tree.

A tree whose hungry mouth is prest
Against the earth’s sweet flowing breast;

A tree that looks at God all day,
And lifts her leafy arms to pray;

A tree that may in Summer wear
A nest of robins in her hair;

Upon whose bosom snow has lain;
Who intimately lives with rain.

Poems are made by fools like me,
But only God can make a tree.
--
;;;;
run;
© www.soinside.com 2019 - 2024. All rights reserved.