2016-08-02 5 views
1

Ich bin diesen Code verwendenExport Datensätze in mehrere Blätter von einer Excel-Datei in sas

proc export data=goldsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace; 
sheet="gold"; 
run; 

proc export data=platinumsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace; 
sheet="platinum"; 
run; 

proc export data=titaniumsheet_invalid outfile="C:\Documents and Settings\sasadm\Desktop\gold.xls" dbms=xls replace; 
sheet="titanium"; 
run; 

Error:Statement is not valid or it is used out of proper order

Hinweis: - bereits versuchen dbms = xlsx oder dbms EXCELCS = aber nicht funktioniert

+0

nichts falsch mit Ihrem Code, den ich sehen kann:

Mehr Details über SAS und ODS finden werden. Worauf weist der Fehler im Protokoll hin? Funktioniert 'dbms = xls' (ohne die Blattnamen etc.) oder haben Sie vielleicht ein Problem mit Ihrer Excel-Installation? – Joe

+0

dbms = xls funktionieren ohne den sheetname aber nach dem Schreiben sheetname haben wir den Fehler – bhavnish

+0

Okay, aber was gibt es sonst in dem Fehler? Es sollte dir zeigen, worüber es sich beschwert; und ich wäre nicht schockiert, mehr Fehler als diese eine Zeile zu sehen. Sie können auch hinzufügen, welche SAS-Version Sie verwenden. SAS 9.4 hat kein Problem mit der Ausführung dieses Codeblatts. – Joe

Antwort

0

Statt Bei Verwendung eines PROC EXPORT kann dies mit älteren Versionen von SAS mit ODS-Anweisungen (Output Delivery System) erreicht werden. Diese Route ist nicht so sauber wie der PROC EXPORT, aber wenn Sie nur die Daten aus diesen Datensätzen in einer einzigen Excel-Arbeitsmappe speichern und die Ergebnisse jeder proc-Anweisung auf einem anderen Arbeitsblatt anzeigen möchten, ist dies der Fall.

der Code in diesem Fall zu erreichen, was Sie wäre suchen:

ods tagsets.excelxp file='C:\temp\gold.xml' options(sheet_name = 'Gold' sheet_interval='proc'); 
proc print data=goldsheet_invalid; 
run; 
ods tagsets.excelxp options(sheet_name = 'Platinum'); 
proc print data=platinumsheet_invalid; 
run; 
ods tagsets.excelxp options(sheet_name = 'Titanium'); 
proc print data=titaniumsheet_invalid; 
run; 
ods tagsets.excelxp close; 

Sie werden feststellen, dass die Dateierweiterung erstellt XML ist, dann ist dies eine Notwendigkeit. Wenn Sie die Datei in Excel laden, erscheint sie wie erwartet und Sie können die Dateierweiterung von dort aus aktualisieren. https://support.sas.com/rnd/base/ods/odsmarkup/TipSheet_ods_xl_xp.pdf

Verwandte Themen