Есть ли способ импортировать несколько листов Excel с использованием кода в SAS Enterprise при возникновении ошибок СУБД? - PullRequest
0 голосов
/ 18 февраля 2020

Я написал некоторый код с надеждой на импорт нескольких листов, но я получаю сообщение об ошибке: «ОШИБКА: тип СУБД XLSX недопустим для импорта».

Я посмотрел на ошибку и попробовал XLS et c, а затем проверил

proc setinit; run;

Вывод не включал «--- Интерфейс SAS / ACCESS для файлов P C», и в этом случае я вижу, что вместо этого рекомендуется использовать файл CSV. Это было бы хорошо, за исключением того, что я пытаюсь импортировать десятки листов в макрос (см. Ниже) из одной книги Excel. Я не уверен, что имеет смысл сохранять каждый лист в формате csv, чтобы макрос мог извлекать все файлы. Это будет трудоемким в будущем, так как эти таблицы будут обновляться, возможно, несколько раз в год.

%let path = 'C:/Desktop/Folder';

%macro importsheet(sheet);
proc import out= &sheet
    datafile = &path
    dbms=XLSX replace;
    getnames=yes;
run;
%mend;

%importsheet(sheet1);

Мой основной вопрос таков: является ли опция csv единственным / лучшим решением для того, о чем я спрашиваю? Мой резервный план состоит в том, чтобы просто сделать autoexe c, но я хотел бы убедиться, что я тщательно изучил написание макроса и отбросил его как опцию, прежде чем сделать это.

1 Ответ

0 голосов
/ 18 февраля 2020

Самый быстрый и простой способ импортировать все таблицы Excel - использовать ссылку на имя библиотеки.

libname myXL xlsx 'path to xlsx file';

proc copy in=myXL out=work; run;

Это не будет работать, если вы импортируете из указанного c диапазона.

...