我有兴趣使用 RODBC
在 R 2.11.1
中打开 Excel 2007 文件。 Excel 文件位于 MOSS2007 网站的共享文档页面中。我目前将 .xlsx
文件下载到我的硬盘,然后使用以下代码导入到 R
:
library(RODBC)
con<-odbcConnectExcel2007("C:/file location/file.xlsx")
data<-sqlFetch(con, "worksheet name")
close(con)
当我在 odbcConnectExcel2007
连接中输入文档的 web url 时,会弹出一条错误消息:
ODBC Excel Driver Login Failed: Invalid internet Address.
然后是我的 R 控制台中的以下消息:
ERROR: Could not SQLDriverConnect
如果您能提供任何见解,我们将不胜感激。
谢谢!
**更新**
我尝试下载的网站受密码保护。我使用包 RCurl
中的方法“getUrl”尝试了另一种方法:
x = getURL("http://website.com/file.xlsx", userpwd = "uname:pw")
我收到的错误是:
curlPerform(curl = curl, .opts = opts, .encoding = .encoding) 错误:
字符串中嵌入 nul:'PK\003\004\024\0\006\0\b\0\0\0!\0dA»ï\001\0\0O\n\0\0\023\0Ò\001 [Content_Types].xml ¢È\001(\0\002\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
我不知道这是什么意思。任何帮助,将不胜感激。谢谢!
最佳答案
两个解决方案对我有用。
如果您不需要自动执行提取数据的脚本,您可以 map a network drive指向要从中提取 Excel 文档的共享点文件夹。
如果您需要自动化脚本每隔几分钟提取一次 Excel 文件,我建议在自动将文件保存到本地驱动器的请求中发送您的身份验证凭据。您可以从那里将其读入 R 以进行进一步的数据整理。
library("httr")
library("openxlsx")
user <- <USERNAME>
password <- <PASSWORD>
url <- "https://sharepoint.company/file_to_obtain.xlsx"
httr::GET(url,
authenticate(user, password, type="ntlm"),
write_disk("C:/tempfile.xlsx", overwrite = TRUE))
df <- openxlsx::read.xlsx("C:/tempfile.xlsx")
您可以通过单击共享点位置并删除文件结尾(xlsx、xlsb、xls 等)后的“?Web=1”来获取文件的正确 URL。 USERNAME 和 PASSWORD 通常是 Windows 凭据。它有助于将它们存储在 key 管理器中(例如:
library("keyring")
keyring::key_set_with_value(service = "Windows", username = "Key", password = <PASSWORD>)
然后通过
进行身份验证authenticate(user, kreyring::key_get("Windows", "Key"), type="ntlm")
在某些情况下,通过可能就足够了
authenticate(":", ":", type="ntlm")
如果只需要您的 Windows 凭据并且代码正在您的计算机上运行。
关于r - 如何使用 RODBC 或 RCurl 从 R 中受密码保护的 Sharepoint 2007 站点打开 Excel 2007 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962095/