在Excel中读取(使用自动脚本下载)时,如果不手动打开并保存,则会产生错误

我运行一个自动脚本,每小时从3个网站下载3个.xls文件。 当我稍后尝试读取R中的.xls文件以进一步处理它们时,R会产生以下错误消息:

错误:IOException(Java):block [2]已经被移除 – 你的POIFS是否有循环或重复的块引用?

当我手动打开并保存.xls文件这个问题不再出现,一切工作正常,但由于文件的总数增加了72,每天这不是一个很好的工作。

我用来下载和保存文件的脚本:

library(httr) setwd("WORKDIRECTION") orig_wd <- getwd() FOLDERS <- c("NAME1","NAME2","NAME3") #representing folder names LINKS <- c("WEBSITE_1", #the urls from which I download "WEBSITE_2", "WEBSITE_3") NO <- length(FOLDERS) for(i in 1:NO){ today <- as.character(Sys.Date()) if (!file.exists(paste(FOLDERS[i],today,sep="/"))){ dir.create(paste(FOLDERS[i],today,sep="/")) } setwd(paste(orig_wd,FOLDERS[i],today,sep="/")) dat<-GET(LINKS[i]) bin <- content(dat,"raw") now <- as.character(format(Sys.time(),"%X")) now <- gsub(":",".",now) writeBin(bin,paste(now,".xls",sep="")) setwd(orig_wd) } 

然后我用下面的脚本读取文件:

 require(gdata) require(XLConnect) require(xlsReadWrite) wb = loadWorkbook("FILEPATH") df = readWorksheet(wb, "Favourite List" , header = FALSE) 

有没有人有这种types的错误的经验,并知道一个解决scheme或解决方法?

通过使用CRAN库中提供的readxl软件包可部分解决该问题。 安装文件可以通过以下方式读入:

 library(readxl) read_excel("PathToFile") 

唯一的问题是,阅读时省略了最后一列。如果我find了解决scheme,我将更新awnser。