On 20/07/11 18:56, Dieter Menne wrote:
David Scott-6 wrote:
I have been trying to read some data from an Excel workbook without
success.
...
> faults<- sqlFetch(channel, sqtable = 'Data',
+ colnames = FALSE, as.is = TRUE)
> faults
[1] "HY001 -1040 [Microsoft][ODBC Excel Driver] Too many fields defined."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'SELECT * FROM [Data$]'"
I have given up using odbc/Excel without named ranges, but I know it works
sometimes. xlsReadWrite works well for whole sheets, while the gdata/Perl
solutions can be terribly slow (minutes instead of seconds) with large
files.
I had seen the message above before, and it had to do with some invisible
characters in the fields. I managed to get it to work by exporting value of
the sheet, which seems to do a cleanup. Alternatively, a Copy/PasteValue.
After that, my curiosity was satisfied, and I returned to named ranges or
xlsReadWrite.
Dieter
Thanks Dieter. Your reply prompted me to carry out some experimentation
which confirmed to me the validity of your conclusions. I was unable to
read the data satisfactorily using RODBC without creating a named range.
Once I created a named range all was fine.
I did some searching for unusual characters in the data set, but
couldn't find anything untoward. I tried removing the 1st row which had
drop down lists but to no avail.
Another approach which worked was to copy the data from the existing
sheet to a new sheet, retaining values and number formats.
Finally, I decided to save the workbook in .xlsx format, and use
odbcConnectExcel2007. I was then able to read the data successfully,
with one problem being that 255 columns were read, when only 20 actually
contained data. The read also seemed a bit slow.
So, a few workarounds for anyone facing this problem in the future:
named range; copy the data values to a new sheet; or use .xlsx format.
David Scott
--
_________________________________________________________________
David Scott Department of Statistics
The University of Auckland, PB 92019
Auckland 1142, NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email: [email protected], Fax: +64 9 373 7018
______________________________________________
[email protected] 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.