Sorry, I thought the code was clear, but probably not.   As far as I know,
the "gdata" package requires perl.  My read.xls function requires RODBC.  If
you don't have perl, my function works well, but if you have perl, the gdata
package can do a better job of reading mixed-type (character/numeric)
columns from Excel.  The arguments to my read.xls function:
file: name of the Excel file
sheet: this is the name that appears on the tab at the bottom of the
worksheet
condition: this is an additional SQL expression that can be passed to the
RODBC calls.

Kevin


On Fri, Feb 5, 2010 at 9:27 AM, Gabor Grothendieck
<ggrothendi...@gmail.com>wrote:

> Yes.  Get it from here:
> http://www.activestate.com/activeperl/
>
> On Fri, Feb 5, 2010 at 10:10 AM, Gábor Pozsgai <pozsg...@gmail.com> wrote:
> > 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.s...@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 <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
> >>
> >>
> >
> >
> >
> > --
> > 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.
> >
>
> ______________________________________________
> 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