Извлечь количество листов из книги Excel в R (без XLConnect)

Я относительно новичок в R (и программировании). У меня есть книга Excel с 36 листами, но предположим, что я не знаю, сколько там листов, и хочу, чтобы мой код узнал это за меня. Я пробовал что-то вроде:

options(java.parameters = "-Xmx6g")
library(XLConnect)
myWorkbook <- loadWorkbook(filename)
numberofsheets <- length(getSheets(myWorkbook))

Но даже несмотря на то, что я установил для своей памяти 6 ГБ, я все еще сталкиваюсь с ошибками памяти с XLConnect, поэтому я хотел бы использовать другие пакеты (например, xlsx, openxlsx). Есть ли способ узнать количество листов в книге Excel без использования XLConnect? Спасибо за вашу помощь.


person Kaveh Dianati    schedule 11.11.2016    source источник
comment
Решение @ rosscova полезно, потому что вам не нужно загружать файл для подсчета. С XLConnect вы могли сделать wbObj=xlsx::loadWorkbook("test.xlsx");numSheets = wbObj$getNumberOfSheets()   -  person Silence Dogood    schedule 11.11.2016
comment
просто чтобы закончить с library(xlsx). Синтаксис почти идентичен текущему: wb <- loadWorkbook(file); names(getSheets(wb) Я пропускаю список объектов Java и просто использую имена для индексации и передачи в read.xlsx(sheetName = sheet).   -  person Nate    schedule 11.11.2016


Ответы (2)


Может попробовать:

library( readxl )
length( excel_sheets( filename ) )
person rosscova    schedule 11.11.2016
comment
Я сделал сейчас. Извини, я здесь новенький. - person Kaveh Dianati; 06.12.2016

Это должно делать именно то, что вы хотите.

gdata::sheetCount("your_path_here.xlsx")

Также, чтобы перечислить имена листов в виде массива.

library(purrr)
library(readxl)

file <- 'your_path_here.xlsx'

sheets <- excel_sheets(file)
person Community    schedule 15.11.2016