Экспорт из SAS Enterprise Guide в несколько вкладок в Excel (.xlsx)

Я пытаюсь экспортировать вывод из SAS Enterprise Guide в Microsoft Excel 2010 (.xlsx), выводя как несколько таблиц на листе, так и несколько листов на книгу. Я хочу, чтобы несколько выходов proc sql экспортировались в одну вкладку, а также другие выходы в несколько вкладок в одной и той же таблице. У меня есть код, который позволяет мне это делать (см. Ниже), но я не могу заставить его экспортировать в несколько программ в SAS Enterprise Guide. В идеале я хотел бы, чтобы каждая программа из моего потока процессов SAS Enterprise Guide экспортировала вывод на другую вкладку в одном и том же файле Excel. Например, приведенный ниже код работает, когда он находится в одной и той же программе, но я хочу, чтобы код sql proc "Age and Age" находился в другой программе, а не в коде "Diagnosis and Treatment", для целей моей собственной организации.,

Есть ли способ сделать это?

До сих пор, когда я пытаюсь разделить приведенный ниже код на две программы, он просто заменяет первый вывод вторым вместо создания двух отдельных листов.

goptions device=actximg; /*suppresses Error*/
ods excel file="C:\Example.xlsx" 
style=htmlblue
options(
  sheet_interval="none" 
  sheet_name="ID and Age"
  embedded_titles='yes'
 );

proc sql;title "Patient list";
select patient_id, date from data;run;

proc sql;title "Patients under 2";
select patient_id, dob, age_in_years from data where age_in_years < 2;run;


ods excel
options(
  sheet_interval="none" 
  sheet_name="Diagnosis and Treatment"
  embedded_titles='yes'
 );

proc sql;title "Diagnosis for patients under 2";
select patient_id, diagnosis from data where age_in_years < 2;run;

proc sql;title "Treatment for patients under 2";
select patient_id, treatment from data where age_in_years < 2;run;

ods excel close;

1 ответ

Решение

Не удастся сохранить ODS EXCEL назначение, открытое для нескольких программ в Enterprise Guide, к сожалению. Каждая программа начинается и заканчивается ODS _ALL_ CLOSE;, который закрывает пункт назначения, и, поскольку ODS не может обновить электронную таблицу на месте (пока?), это исключает использование, которое вы предлагаете.

Однако то, что вы могли бы сделать, это настроить ваш вывод как макрос (ы). Затем есть одна программа, которая вызывает все эти макросы, в пределах ods excel блоки. Это позволило бы вам делать то, что вы ищете - за счет того, что все эти наборы данных и выходные данные содержатся в одной конечной программе вывода, а не в отдельных программах.

Или вы можете выполнить все расчеты в отдельных программах, но затем иметь одну основную программу вывода, которая выводит все окончательные результаты (которые сохраняются либо в наборах данных, либо в ODS DOCUMENT объекты).

Другие вопросы по тегам