我想阅读一堆位于同一目录中的excel文件,并将它们存储在合并的Excel文件中的不同表格中。
我最初尝试使用XLConnect
但仍然收到错误GC overhead limit exceeded
。我偶然发现了this question,它说基于Java的Excel处理包(例如XLConnect
和xlsx
)是一个常见问题。我尝试了那里建议的内存管理技巧,但它没有用。其中一条对已接受答案的评论中的一条评论建议使用基于openxls
的{{1}},从而避免此特定问题。
我目前的代码如下:
RCpp
我遇到的问题是错误:library(openxlsx)
mnth="January"
files <- list.files(path="./Original Files", pattern=mnth, full.names=T, recursive=FALSE) #pattern match as multiple files are from the same month
# Read them into a list and write to sheet
wb <- createWorkbook()
lapply(files, function(x){
print(x)
xlFile<-read.xlsx(xlsxFile = x, sheet = 1, startRow = 2, colNames = T) #Also tried
str(xlFile)
#Create a sheet in the new Excel file called Consolidated.xlsx with the month name
#Append current data in sheet
})
我已确保Error in read.xlsx.default(xlsxFile = x, sheet = 1, startRow = 2, colNames = T) : openxlsx can not read .xls or .xlm files!
变量包含所有感兴趣的文件(例如:2015年1月.xls,2016年1月.xls等)。我还确保文件的路径是正确的,Excel文件实际存在于那里。
我已将Excel的写作留作骨架代码,因为我需要首先阅读文件来解决问题。
如果有帮助,这是使用files
XLConnect