Импортировать все листы Excel в папку, не упоминая имя Excel - PullRequest
0 голосов
/ 14 января 2019

Мне нужно импортировать все листы с соответствующими именами, указав только путь к папке.

filename <-"D:/Dash/"
sheets <- openxlsx::getSheetNames(filename)
 SheetList <- lapply(sheets,openxlsx::read.xlsx,xlsxFile=filename)
 names(SheetList) <- sheets

Но это показывает ошибку, поскольку имя файла не упоминается.

Что мне нужно, это Импорт этих листов из Excel в папку с указанным только путем к папке.

1 Ответ

0 голосов
/ 14 января 2019

Как указано @MichaelChirico, вы можете сделать это, используя list.files

path <- "D:/Dash/"
excelFiles <- list.files(path = path, pattern = '.*\\.xlsx', full.names = TRUE) # or xls, xlsm, xlsb, etc.

Теперь извлекаем данные

метод 1

sheetNamesList <- lapply(seq_along(excelFiles), 
                         function (k) c(file = excelFiles[k], 
                                        sheet = openxlsx::getSheetNames(excelFiles[k]))
                         )
sheetData <- lapply(seq_along(sheetNamesList), 
                    function (k) openxlsx::read.xlsx(xlsxFile = sheetNamesList[[k]]['file'], 
                                                     sheet = sheetNamesList[[k]]['sheet'])
                    )

метод 2

sheetData <- lapply( seq_along(excelFiles), 
                     function (k) {
                       tmpSheets <- openxlsx::getSheetNames(excelFiles[k])
                       tmpData <- lapply(seq_along(tmpSheets), function (n) openxlsx::read.xlsx(excelFiles[k], sheet = tmpSheets[n]))
                       tmpData
                     })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...