2015-01-07 50 views
0

我試圖讀取存儲在公司Intranet SharePoint網站上的Excel文件,並且使用R Studio中的'gdata'軟件包使用Shiny Server在Linux服務器上運行。從Linux服務器(運行R Studio)讀取存儲在SharePoint上的Excel文件

我從使用gdata的MS Windows環境中讀取文件的結果很好,但在Linux服務器上運行腳本時似乎無法使其工作。這是基於從信息:

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

我做了修改的路徑Perl的Linux服務器在R腳本(相對於路徑perl.exe所在在Windows上),這似乎工作好。

文件的URL是 "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"

這裏是錯誤消息的結果(當在Linux上使用R Studio在Shiny Server上運行):

d.optin.init2 < - read.xls(fileurl, +片= 「選擇列表」, +的Perl = 「的/ usr /斌/ perl的」) 試圖URL 'http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm'

錯誤下載。文件(XLS,TF,模式= 「WB」): 不能打開URL 'http://sharepoint2/ops/quality/metricspc/Metric OptIn List/temporary SPC Metric Opt-In List.xlsm'

此外:警告消息: 在download.file(XLS,TF,模式= 「WB」): 不能打開:HTTP狀態爲'400 Bad Request'

file.exists(tfn)中的錯誤:無效'fil e'參數

該文件的路徑(在SharePoint上)是一個URL(在代碼中顯示),所以我認爲Linux服務器和MS SharePoint之間的路線可能很簡單。但是,由於這對我來說在Windows下工作,但對Linux還不適用,所以我想知道我可能錯過了什麼?

預先感謝您提供的任何見解。

(我不附加Excel文件,因爲我不知道它會與這個問題有幫助。)

最好的問候,

崖從sessionInfo

輸出

sessionInfo() R版本3.1。0(2014年4月10日) 平臺:x86_64的-紅帽-Linux的GNU(64位)

區域設置: 1Ç

附基礎包: 1統計圖形grDevices utils的數據集的方法基礎

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

經由一個命名空間加載(和未附): 1 MASS_7.3-31 gtools_3.4.1 tools_3.1.0

根據hrbrmstr和Greg提供的建議,我嘗試了wget和curl從Linux命令行。

wget的結果 wget results

捲曲結果 curl results

我可以用我們的IT人員來解決工作。如果任何人都可以幫助我完善我可能根據這些結果向他們提出的問題,我會歡迎這些意見。

再次感謝那些花時間回覆的人。

更多的後續

@Gregory R. Warnes 我能夠使用wget從Linux服務器此命令行:

wget的--http用戶=名爲myUsername --http -passwd = mypassword(在這裏放置文件)

這似乎訪問文件,彌合了Linux服務器和Windows SharePoint之間的鴻溝。

現在弄清楚如何在gdata R腳本中包含這個AD身份驗證。

+0

你可以從命令行卷曲或wget文件嗎? – hrbrmstr

+0

謝謝......我欣賞這個建議。我簡單地探索了這個選項,但似乎我還沒有掌握它。如果可能,我的首選是從R內部管理這個;從R內讀取文件,並將其從SharePoint移動到Linux服務器。但我會進一步探討curl或wget選項。再次,謝謝。 – crlong

回答

0

錯誤消息指示R的download.file()代碼無法訪問該URL。

要調試的問題,嘗試訪問從Linux服務器從shell命令行的網址,例如:

如果安裝了wget:

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

,或者捲曲安裝:

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

如果wget和/或curl生成錯誤,那麼您有服務器配置問題。

如果wget和/或curl成功,則問題可能出現在R的download.file()中。

-Greg

+0

嗨,格雷格。非常感謝。 – crlong

+0

我可以在Linux服務器上使用wget命令行:wget --http-user = myusername --http-passwd = mypassword [link](「http:// sharepoint2/ops/quality/metricspc/Metric \ OptIn \ List/SPC \ Metric \ Opt-In \ List.xlsm「)。現在想出如何將這個AD認證包含在gdata R腳本中。 – crlong

+0

嗨格雷格。我花了一段時間,但我終於從Linux服務器上得到了wget和curl工作......他們都可以訪問SharePoint服務器上的Excel文件。 如果可能,我的下一個問題是如何在使用gdata調用wget(或curl)時指定用戶名和密碼。我看了,但似乎無法找到具體的例子。我嘗試了一下,但沒有成功。 – crlong

相關問題