【问题标题】:Read an Excel file stored on SharePoint from Linux server (running R Studio)从 Linux 服务器读取存储在 SharePoint 上的 Excel 文件(运行 R Studio)
【发布时间】:2015-03-05 09:25:25
【问题描述】:

我正在尝试读取存储在企业 Intranet SharePoint 网站上的 Excel 文件,并且正在使用在使用 Shiny Server 的 Linux 服务器上运行的 R Studio 中的“gdata”包来执行此操作。

我使用 gdata 从 MS Windows 环境中读取文件的结果很好,但在 Linux 服务器上运行脚本时似乎无法正常工作。这是基于以下信息:

http://r.789695.n4.nabble.com/trying-to-import-xls-or-xlsx-files-td3620580.html

我确实修改了 Linux 服务器上 Perl 路径的 R 脚本(与 Windows 上 perl.exe 的路径相比),这似乎工作正常。

文件地址是 "http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm"

这里是 R 代码:

# R read MS Excel xlsm file from SharePoint
# method using gdata - seems to work with SharePoint 
# NOTE:  requires 'perl' installed
#
# example from
# http://r.789695.n4.nabble.com/trying-to-import-xls-or-xlsx-files-td3620580.html

library(gdata) 

fileurl =   
# see fileurl above this code section - did this due to SO error message about not having 'sharepoint2' in the url

d.optin.init2 <- read.xls(fileurl, 
                          sheet = "OPT-IN LIST", 
                          perl = "/usr/bin/perl")


##### END CODE #####

使用的原始(基于 Windows)脚本perl = "C:\\Perl64\\bin\\perl.exe"

以下是产生的错误消息(在 Shiny Server 上使用 R Studio 从 Linux 运行时):

d.optin.init2 'http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm'

download.file(xls, tf, mode = "wb") 中的错误: 打不开网址'http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm'

另外:警告信息: 在 download.file(xls, tf, mode = "wb") : 无法打开:HTTP 状态为“400 Bad Request”

file.exists(tfn) 中的错误:'file' 参数无效

文件的路径(在 SharePoint 上)是一个 URL(显示在代码中),所以我认为 Linux 服务器和 MS SharePoint 之间的路由可能很简单。但由于这适用于我的 Windows,但不适用于我的 Linux,我想知道我可能错过了什么?

提前感谢您提供的任何见解。

(我没有附上 Excel 文件,因为我不确定它是否有助于解决这个问题。)

最好的问候,

悬崖

sessionInfo 的输出

会话信息() R 版本 3.1.0 (2014-04-10) 平台:x86_64-redhat-linux-gnu(64位)

语言环境: 1C

附加的基础包: 1 stats graphics grDevices utils datasets methods base

其他附加包: 1gdata_2.13.3 qcc_2.5

通过命名空间加载(未附加): 1MASS_7.3-31 gtools_3.4.1 tools_3.1.0

根据 hrbrmstr 和 Greg 提供的建议,我从 Linux 命令行尝试了 wget 和 curl。

wget 结果

卷曲结果

我可以与我们的 IT 人员一起解决问题。如果有人可以帮助我根据这些结果改进我可能向他们提出的问题,我会欢迎您提出意见。

再次感谢那些花时间回复的人。

更多跟进

@Gregory R. Warnes 我可以在 Linux 服务器上通过这个命令行使用 wget:

wget --http-user=myusername --http-passwd=mypassword(把文件地址放在这里)

这似乎访问了文件,弥合了 Linux 服务器和 Windows SharePoint 之间的鸿沟。

现在要弄清楚如何在 gdata R 脚本中包含此 AD 身份验证。

【问题讨论】:

  • 你能从命令行curlwget文件吗?
  • 谢谢...感谢您的建议。我确实简要地探索了这个选项,但似乎我还没有掌握它。如果可能的话,我的偏好是在 R 内部进行管理;从 R 中读取文件与将其从 SharePoint 来回移动到 Linux 服务器。但我将进一步探索 curl 或 wget 选项。再次感谢。

标签: r


【解决方案1】:

错误信息表明 R 的 download.file() 代码无法访问 URL。

要调试问题,请尝试从 shell 命令行从 Linux 服务器访问该 URL,例如:

如果安装了 wget:

> wget http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm

或者如果安装了 curl:

> curl http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm

如果 wget 和/或 curl 生成错误,则说明您存在服务器配置问题。

如果 wget 和/或 curl 成功,那么问题可能出在 R 的 download.file() 上。

-格雷格

【讨论】:

  • 我可以在 Linux 服务器的这个命令行中使用 wget: wget --http-user=myusername --http-passwd=mypassword [link]("sharepoint2/ops/quality/metricspc/Metric\ OptIn\ List /SPC\ Metric\ Opt-In\ List.xlsm")。现在弄清楚如何在 gdata R 脚本中包含此 AD 身份验证。
  • 嗨,格雷格。我花了一段时间,但我终于让 wget 和 curl 在 Linux 服务器上工作......他们似乎都可以访问 SharePoint 服务器上的 Excel 文件。如果可以的话,我的下一个问题是如何在使用 gdata 时在调用 wget(或 curl)时指定用户名和密码。我看过但似乎找不到具体的例子。我尝试了一些,但没有成功。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多