[R] number of Excel worksheets

Gábor Pozsgai pozsgaig at gmail.com
Fri Feb 5 16:10:05 CET 2010


Thank you both.
Gabor, do I need perl to be installed onj my computer to use those functions?

Gabor

2010/2/5 Kevin Wright <kw.stat at gmail.com>:
> I have a function to read xls files that tells me the name of the available
> sheets.  See below.
>
> Kevin Wright
>
>
> read.xls = function (file, sheet, condition)
> {
>     if (missing(file))
>         stop("No file specified.")
>     if (!file.exists(file))
>         stop("File ", file, " does not exist in directory ",
>             getwd())
>     if (missing(sheet))
>         stop("No sheet specified.")
>     if (!require(RODBC, quietly = TRUE))
>         stop("The RODBC package is required.")
>     channel = odbcConnectExcel(file)
>     if (!RODBC:::odbcValidChannel(channel))
>         stop("first argument is not an open RODBC channel")
>     tables <- sqlTables(channel)
>     tables <- if (is.data.frame(tables))
>         tables[, "TABLE_NAME"]
>     else ""
>     tables <- gsub("\\$$", "", gsub("'", "", tables))
>     if (!(sheet %in% tables)) {
>         odbcClose(channel)
>         msg <- paste(paste("'", tables, "'", sep = ""), collapse = " ")
>         stop("Couldn't find requested sheet.\n", "  Available sheets are: ",
>             msg)
>     }
>     qsheet <- paste("[", sheet, "$]", sep = "")
>     if (missing(condition))
>         data <- sqlQuery(channel, paste("select * from", qsheet))
>     else data <- sqlQuery(channel, paste("select * from", qsheet,
>         condition))
>     odbcClose(channel)
>     if (length(grep("#", names(data))) > 0)
>         cat("Caution: Column names may have had '.' changed to '#'.\n")
>     cat("Caution: Be careful with mixed-type columns that begin with\n")
>     cat("         some (15?) rows that are only numeric.\n")
>     cat("         Use str() and summary() to check the import.\n")
>     return(data)
> }
>
>
> On Fri, Feb 5, 2010 at 8:13 AM, Gábor Pozsgai <pozsgaig at gmail.com> wrote:
>>
>> Dear All,
>>
>> I would like to count or list the names of the existing worksheets
>> within an .xls file. Any hints?
>>
>> Thaks,
>>
>> Gabor
>>
>> --
>> Pozsgai Gábor
>> www.coleoptera.hu
>> www.photogabor.com
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Kevin Wright
>
>



-- 
Pozsgai Gábor
www.coleoptera.hu
www.photogabor.com



More information about the R-help mailing list