使用SAS从Excel电子表格中删除数据

时间:2014-04-02 12:30:51

标签: excel sas

我有一个看似简单的问题。虽然我一直在这里寻找一个解决方案,并且在互联网上寻找解决问题的一些方法,但没有任何作用。

我已使用以下代码从SAS导出到Excel:

libname xls excel '..\Test3.xlsx' scan_text = no ver=2007;

proc datasets lib = xls nolist;
   delete Sweden;
quit;

data xls.Sweden;
   set WORK.falcon_cases_2;
run;

libname xls clear;

然后使用此代码附加另一个表:

libname xls excel '..\Test3.xlsx' scan_text = no ver=2007 ;

proc append base = xls.Sweden
            data = WORK.falcon_cases_NorDen_2;
run;

libname xls clear;

我必须这样做,因为这两个表的数据来自不同的SAS服务器数据表。

问题是这部分,

proc datasets lib = xls nolist;
   delete Sweden;
quit;

仅删除指定范围,该范围仅扩展到放入电子表格的第一个数据集。因此,如果第一个表是10行而第二个表是15行,则在电子表格中最多可添加25行。删除完成后,仅清除前10行。 我尝试过使用

proc sql noprint; 
   drop table xls.'Sweden$'n;
quit;

但结果是一样的。这两种解决方案似乎仅限于指定范围内的清晰数据。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

乔 - 你的最新评论给了我一个想法。如果我结合导出方法,似乎可以解决这个问题。我使用

导出了第一个表
PROC EXPORT DATA= WORK.falcon_cases_2
OUTFILE= "..\Test3.xlsx" 
DBMS=XLSX REPLACE;
SHEET="Sheet1"; 
RUN;

然后使用与之前相同的附加代码附加第二个表。因此,下次PROC EXPORT运行时,它会替换所有内容,从而解决我的问题:)