循环浏览文件夹中的所有Excel文件,并使用SAS提取每个文件的特定单元格

布莱恩

假设我们有一个数据目录C:\temp\,其中包含数百个Excel文件,例如isin47.xlsisin11.xls在每个Excel文件中,我要提取单元格的值$E$16并创建一个长表result,该如下所示,假定文件分别在该单元格中具有299792458662607004作为值。

isin   value_euro
47     299792458
11     662607004      

如何在SAS中最有效地做到这一点?

到目前为止,我的想法是使用以下算法:

  1. 循环浏览目录中的所有文件并创建myExcels具有所有名称的表,请参阅如何遍历SAS中的文件?
  2. 循环myExcels并使用类似的代码导入每个
proc import
   datafile="C:\temp\isin47.xls"
   dbms=excelcs
   out=data_current_isin
   replace;
run;

proc sql;
   select Value_found_in_E_1 into: value trimmed
   from data_current_isin 
   where Value_found_in_D_1 = "Value_found_in_D_13";
quit;

%put ISIN 47 has value of &value. Euro;
  1. 收集&value.表中的所有内容results

这种方法的问题,它依赖于在Excel的单元格的值$D$1$E$1$D$13这是在一般的情况并非如此,除非我写VBA宏以填充细胞(我想避免赞成纯SAS解决方案)。

期待任何意见或建议。

PS @allOutsideFinance:ISIN唯一定义的金融资产。

汤姆

要从XLS文件读取单个单元格,请仅使用单个单元格的RANGE。确保还告诉IMPORT不要查找变量名。

proc import datafile='c:\downloads\test_import.xls' dbms=xls
  out=cell replace
;
  getnames=NO;
  range='$B2:B2';
run;

然后,只需将其添加到您的汇总数据集即可。

创建一个以读取文件名作为输入的宏可能是最容易的。

%macro read_one(filename);
proc import datafile="&filename"  dbms=xls
  out=cell replace
;
  getnames=NO;
  range='$B2:B2';
run;
proc sql;
   insert into want(filename,value_euro)
     select  "&filename",B from cell
   ;
quit;
%mend;

然后,您可以使用文件列表来生成对宏的调用。首先设置一个空文件以接收记录。

data want;
   length filename $256 value_euro 8 ;
   stop;
run;

然后使用一个数据步骤并为每个文件生成对宏的一次调用。例如,您可以使用CALL EXECUTE。

data _null_;
   set filelist ;
   call execute(cats('%nrstr(%read_one)(',filename,')'));
run;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

循环浏览文件夹中的所有文件

循环浏览文件夹中的所有CSV文件

Shellscript循环浏览文件夹中的所有文件

使用Excel宏循环浏览文件夹中的文件

VBA-循环浏览文件夹中的文件并复制单个单元格以及范围(如果满足条件)

如何使用beanshell在jmeter的excel / csv文件中的特定单元格写入数据?

将值导出到 excel 文件中的特定单元格(使用 PDI)

如何锁定具有子文件夹的文件夹中所有文件的单元格

循环浏览每个文件夹并连接文件(在每个文件夹中输出组合文件)

循环浏览文件夹中的所有文件,并使用Python将随机数附加到每个文件的每一行中

循环浏览文件夹中的所有文件夹并运行命令

从多个Excel文件中提取特定单元格并将其编译为一个Excel文件

遍历文件夹并使用文件夹名称顺序重命名每个文件夹中的所有文件

使用python向现有excel文件的特定列的每个单元格添加文本

Google Appscript将所有工作表导出为PDF,并从特定的单元格值中命名-保存在特定的文件夹中

如何使用Excel VSTO C#列出特定文件夹中的所有excel文件名和每个文件中使用的总行数

成功循环浏览文件夹中的文件,但所有文件均显示损坏的错误

在Laravel / Cyber-duck Excel中获取Excel文件的特定单元格值

VBA循环浏览具有特定文件名的文件夹中的文件

使用vba从ms访问表单文本框中的多个excel文件中检索特定单元格值

保留格式时,从R锁定Excel文件中的特定单元格

打开excel文件并在特定单元格vba中获取值的功能

您如何在excel文件的特定单元格中写入数据而不覆盖数据(使用熊猫)?

VBA将单元格值转换为文件夹中所有工作表中的文本

VBA循环浏览文件夹中的所有文件并删除无效字符

循环浏览指定目录中的所有文件和文件夹并删除它们

根据MS Excel中的单元格值显示文件夹中的图像

使用VBA循环浏览文件夹中的文件?

循环浏览所有文件夹并执行脚本