从FTP服务器读取xlsx文件(使用RCurl)

3
"RCurl"包中的GetURL函数是一个非常好用的工具,可以从ftp、https等读取内容。我经常使用这个包来读取.csv和.txt文件,但是对于.xlsx文件来说就有些问题了。在这个论坛上我发现,xlsx是一种二进制格式,因此不能像.csv和.txt那样被视为普通文本字符串。
FTP服务器通常需要密码和用户名进行安全认证,因此像"download.file"这样的函数在读取".xlsx"文件时会出现一些问题。我尝试了getBinaryURL函数,但输出格式是"raw",我无法从这种格式中获取data.frame - 无论是通过rawToChar()还是rawRoBin()函数。"
if(!require(RCurl)) install.packages("RCurl");library(RCurl)

url <- "ftp://..."
userpwd <- "user:pwd"

out <- getBinaryURL(url, userpwd = userpwd,
                    ftp.use.epsv = FALSE,crlf = TRUE)

有没有建议,我怎样才能将一个 .xlsx 文件从 ftp 服务器中作为数据框读入 R 中?
1个回答

3
使用连接创建一个临时文件,将您的数据写入该文件,然后使用read_xlsx读取此文件。最初的回答。
Mytmpfile = tempfile()
getBinaryURL(url, userpwd = userpwd, ftp.use.epsv = FALSE,crlf =TRUE)%>%writeBin(con=Mytmpfile)
Df = read_xlsx(Mytmpfile, sheet='x')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接