Reputation: 2895
Is it possible to read an Excel file from an online ZIP file?
I have been trying something like I would do with read.csv
:
nuts = url("http://ec.europa.eu/eurostat/ramon/documents/nuts/NUTS_2010.zip")
xlsx::read.xlsx(unz(nuts, "NUTS_2010.xls"), 1)
close(nuts)
… to no avail.
Upvotes: 5
Views: 1491
Reputation: 2480
This worked for me
options( java.parameters = "-Xmx4g" )
library(XLConnect)
temp <- tempfile()
zipfile <- paste0("https://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/MCRAdvPartDEnrolData/Downloads/"
,year,"/",year,"-", "Low-Income-Subsidy-Contract-Enrollment-by-County.zip")
download.file(zipfile,temp)
filename <- paste0("WEB Tables LIS by state -county ",month2,"-","1","-",year,".xlsx")
temp1 <- unzip(temp)
assign(paste0("scc_pdp_lis_",year),readWorksheetFromFile(temp1,sheet=1,startRow=7,header=F))
I am reading some CMS files I was interested on
Upvotes: 2
Reputation: 226936
It's a little less convenient, but how about:
basefn <- "NUTS_2010"
urlPath <- "http://ec.europa.eu/eurostat/ramon/documents/nuts/"
xlsFile <- paste0(basefn,".xls")
zipFile <- paste0(basefn,".zip")
download.file(paste0(urlPath,zipFile),zipFile)
unzip(zipFile)
## I had trouble with xlsx::read.xlsx, but gdata::read.xls was OK
## xlsx::read.xlsx(xlsFile,1)
gdata::read.xls(xlsFile)
unlink(zipFile)
You can always pack this into a readZipURL <- function(urlPath,basefn) {...}
function if you want to do it on a regular basis (you might want to clean up the downloaded XLS file too ...)
Upvotes: 3