我有一系列XLSX文件,我正在使用DDE连接读入SAS。每个文件包含N×M个包含文本的单元格矩阵。在收到文件之前,某些单元格已被更改,因此它们包含制表符间距或换行符。这不会在一个变量或一个文件中系统地发生,因此我不能分段导入文件或编写一个处理一个特定文件的过程。
我想知道是否有一个命令,一旦建立了DDE链接,我就可以通过PUT语句从SAS发送到EXCEL,这样我就可以找到工作簿中所有类似分隔符的字符并用一个替换它们在将数据读入SAS之前的空间。
我尝试了以下效果:
data _null_;
file LINK;
put '[formula.replace("' '09'x '"," ")]';
dummy = sleep(3);
run;
发生了两件事:
(1)在那些看似在特定单元格中有制表符间距的文件中,该命令不会用空格替换它们;
(2)在那些单元格内没有任何制表符间距的文件中,Excel会产生一个警告,指出它找不到相关的字符,并要求我选中应用程序以取消警告。
任何人都可以解释为什么(1)不起作用?此外,有没有办法,给定(1)工作,以避免(2)在输入文件中的随机单元格内插入制表符间距,以便Excel始终找到至少一个制表符间距?
谢谢!
编辑:我在Windows上运行SAS 9.2。