我試圖讀取存儲在公司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的結果
捲曲結果
我可以用我們的IT人員來解決工作。如果任何人都可以幫助我完善我可能根據這些結果向他們提出的問題,我會歡迎這些意見。
再次感謝那些花時間回覆的人。
更多的後續
@Gregory R. Warnes 我能夠使用wget從Linux服務器此命令行:
wget的--http用戶=名爲myUsername --http -passwd = mypassword(在這裏放置文件)
這似乎訪問文件,彌合了Linux服務器和Windows SharePoint之間的鴻溝。
現在弄清楚如何在gdata R腳本中包含這個AD身份驗證。
你可以從命令行卷曲或wget文件嗎? – hrbrmstr
謝謝......我欣賞這個建議。我簡單地探索了這個選項,但似乎我還沒有掌握它。如果可能,我的首選是從R內部管理這個;從R內讀取文件,並將其從SharePoint移動到Linux服務器。但我會進一步探討curl或wget選項。再次,謝謝。 – crlong