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 <pozsg...@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@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

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to