使用SAS从Excel电子表格中删除数据
我有一个看似简单的问题。尽管我在这里和互联网上到处寻找解决方案,并尝试了一些本应解决问题的方法,但没有任何效果 我已使用以下代码从SAS导出到Excel:使用SAS从Excel电子表格中删除数据,excel,sas,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; libn
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;
然后使用以下代码附加另一个表:
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;
但结果是一样的。这两种解决方案似乎仅限于指定范围内的清晰数据
有什么建议吗?乔-你最近的评论给了我一个想法。如果我结合出口方法,似乎有可能解决这个问题。我使用导出了第一个表
PROC EXPORT DATA= WORK.falcon_cases_2
OUTFILE= "..\Test3.xlsx"
DBMS=XLSX REPLACE;
SHEET="Sheet1";
RUN;
然后使用与前面相同的追加代码追加第二个表。因此,下次运行PROC EXPORT时,它会替换所有内容,从而解决我的问题:)最后两个
PROC数据集
步骤是相同的。在导出到excel之前,您可以将数据集附加到单个SAS数据集吗?不幸的是,没有,因为这将是理想的。谢谢mjsqu。我现在用其他代码编辑了这篇文章。然后你可能需要通过DDE或VB脚本或类似的方式使用excel命令来删除选项卡。工作表和范围在概念上与SAS相同,SAS最初创建工作表时,您似乎被卡住了。您可能会考虑打开SAS支持票,看看它们是否有解决方案,或者是否在稍后版本中进行更改。