【问题标题】:proc upload local fileproc上传本地文件
【发布时间】:2014-04-01 14:04:25
【问题描述】:

我正在尝试将 .xlsx 文件上传到我的服务器,请有人告诉我我做错了什么?

rsubmit;
filename locref %unquote(%str(%'("C:\Users\Admin\Desktop\")%'));

 Proc Upload
  infile=locref('*.xlsx') 
  outfile=%unquote(%str(%'("*.xlsx")%')) BINARY;
run;
endrsubmit;

基本上人们会将 .xlsx 文件放到具有不同文件名的位置,我想将它们全部上传到服务器上。

将 SAS 9.3 64 位与 Windows 7 64 位和 Office 2010 32 位一起使用。

谢谢

【问题讨论】:

  • 为什么你在所有的东西中都有这么多乱七八糟的引用/取消引用?
  • 另外,这看起来很像您之前的问题。你怎么又问了?你没有在这里指定什么不起作用。
  • 注意到@Joe 只是试图改进多年来同事离开时创建的代码。

标签: excel sas excel-2010


【解决方案1】:

看看这个例子:

filename locref 'c:\';
rsubmit;
filename fref '/local/programs';
proc upload infile=locref('*.sas') 
           outfile=fref;
run;
endrsubmit;

注意outfile= 选项指的是作为输出目录 的fileref,而不是文件。此外,在您的代码中,第一个文件名语句需要位于 rsubmit; 之前,如示例所示。

您的最终代码将是:

filename locref "C:\Users\Admin\Desktop";
rsubmit;
filename outref "<INSERT SERVER-SIDE DIRECTORY HERE>";

 Proc Upload
  infile=locref('*.xlsx') 
  outfile=outref BINARY;
 run;
endrsubmit;

注意请将第 3 行的 位替换为您要上传到的远程服务器上的目录。你没有在你的原始代码中引用它,所以我不确定你想要文件去哪里。

正如@Joe 所说,不需要所有的引用/取消引用,它只会使代码更难阅读并且在这种情况下不会增加任何好处。

【讨论】:

  • 谢谢,我知道的代码很乱...我正在尝试构建/改进离开公司的同事的现有代码[我知道没有帮助]!是否可以使用通配符 .xls 和 .xlsx?比如也许 ('.xlsx','.xls') ?
  • 试试'*.xls?',问号匹配'xlsx'中的第二个'x',但也接受空白。如果这不起作用,请尝试'*.xls*',第一种解决方案更可取。
  • 都不工作,我收到以下错误“警告:没有外部文件与通配符规范匹配。”
  • 这很奇怪,我能提供的最好的方法是使用两个单独的PROC UPLOAD 步骤,一个使用'*.xls',另一个使用'*.xlsx'。如果这两个都抛出错误,请仔细检查本地目录中的 excel 文件。
  • 感谢@mjsqu .. ('.xlsx') 和 ('.xls') 都独立工作,并且 ('*') 从该文件夹中引入任何内容。所以我会根据需要使用这些。
猜你喜欢
  • 1970-01-01
  • 2020-03-28
  • 2011-12-05
  • 1970-01-01
  • 2018-07-03
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多