【问题标题】:Effectively read multiple excel sheets from an xlsx excel workbook in SAS 9.4M7从 SAS 9.4M7 中的 xlsx excel 工作簿有效地读取多个 excel 工作表
【发布时间】:2023-01-26 04:42:24
【问题描述】:

我正在尝试从 SAS 中的 excel 工作簿(xlsx 格式)中读取多张工作表。有没有办法同时从 excel 工作簿中读取多个 excel 工作表,而不是使用两个单独的 proc 导入?到目前为止,我的代码如下:

proc import datafile= "&loc.\&exid..xlsx"
    out=exp                        
    dbms=xlsx replace; 
        sheet="Sheet1";
run;

proc import datafile= "&loc.\&exid..xlsx"
    out=dt                       
    dbms=xlsx replace; 
        range="'Sheet5'$A2:AB10000";
        getnames=yes;
run;

从一个 excel 工作簿中读取这两个 excel 工作表需要大约 1.40 秒,我如何减少在 SAS 中读取 xlsx 工作簿所需的时间。

【问题讨论】:

    标签: sas xlsx


    【解决方案1】:

    如果您有 SAS/CONNECT,则可以使用 rsubmit 并行运行这两个导入。我在 Excel 文件上对此进行了测试,它没有给出任何同时访问错误。

    options autosignon  = yes
            connectwait = no
            sascmd      = '!sascmd'
            ;
    
    libname worklib "%sysfunc(getoption(work))";
    
    /* Send over macro variables to rsubmit sessions */
    %syslput _USER_ / remote=session1;
    %syslput _USER_ / remote=session2;
    
    rsubmit remote=session1 inheritlib=(worklib);
        proc import datafile= "&loc.&exid..xlsx"
            out=worklib.exp                        
            dbms=xlsx replace; 
            sheet="Sheet1";
        run;
    endrsubmit;
    
    rsubmit remote=session2 inheritlib=(worklib);
        proc import datafile= "&loc.&exid..xlsx"
            out=worklib.dt                       
            dbms=xlsx replace; 
            range="'Sheet5'$A2:AB10000";
            getnames=yes;
        run;
    endrsubmit;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2011-05-17
      • 2019-10-25
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多