[Rd] RODBC access to MS-Excel (PR#4266)
michael.hecht at geocities.com
michael.hecht at geocities.com
Tue Sep 23 10:39:41 MEST 2003
Full_Name: Michael Hecht
Version: 1.7.1
OS: WinNT
Submission from: (NULL) (193.158.76.205)
I've got a problem with the RODBC library while trying to access to an MS-Excel
file. The Excel file was originally exportet by a commercial software, so I
cannot influence it. The problem is, that the names of the tables include
spaces, e.g. "Scan 1","Scan 2" etc. If I use RODBC, I get back something like
this
> channel<-odbcConnectExcel(fileName)
> tables<-sqlTables(channel)
> scanTables<-tables[c(grep("Scan",tables[,"TABLE_NAME"])),]
> scanTables
TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
16 <NA> 'Scan 1$' TABLE <NA>
4 <NA> 'Scan 10$' TABLE <NA>
5 <NA> 'Scan 11$' TABLE <NA>
6 <NA> 'Scan 12$' TABLE <NA>
...
If I try to fetch a table I get as result
> data<-sqlFetch(channel,"'Scan 2$'",rownames=T)
> data
[1] "S1000 -3003 [Microsoft][ODBC Excel Driver] Syntax error in query.
Incomplete query clause."
[2] "[RODBC] ERROR: Could not SQLPrepare"
If I now change by hand the Excel table, e.g. to "Scan 1" -> "Scan1" I get
TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
2 <NA> Scan1$ SYSTEM TABLE <NA>
4 <NA> 'Scan 10$' TABLE <NA>
5 <NA> 'Scan 11$' TABLE <NA>
6 <NA> 'Scan 12$' TABLE <NA>
but the following does'nt work
> data<-sqlFetch(channel,scanTables[1,"TABLE_NAME"],rownames=T)
Error in odbcTableExists(channel, sqtable) :
Scan1$ : table not found on channel
whereas this works well:
> data<-sqlFetch(channel,"Scan1",rownames=T)
> data
X-Coord Y-Coord C a C2 Si Mn P S
Cr Cr1
1 1648 117896 298.9131 5.558300 4.323123 167.3666 16.674902 0.6175889
74.72826 0.6175889
2 1657 116857 374.2589 10.499012 11.116601 382.9052 16.674902 11.7341900
172.92490 0.6175889
3 1667 119522 453.9279 3.705534 11.116601 295.8251 15.439723 5.5583005
134.63438 0.6175889
4 1678 119281 468.7500 14.204546 12.351779 369.3182 22.233202 8.6462450
173.54250 0.6175889
...
Therefore I've two questions/problems:
1. where comes the $ from, Scan1$ or 'Scan 2$', is this a bug ??
2. How can I access such tables with spaces in the name ??
More information about the R-devel
mailing list