2013-04-11 60 views
1

当我尝试运行sqlFetch语句时,我间歇性地收到以下错误。从excel中获取数据R

Error in odbcTableExists(channel, sqtable) : 
    ‘Sheet20’: table not found on channel 
+1

直接从Excel中获取数据很难,难道你不能将你的数据导出为.csv格式吗? – Stijn 2013-04-11 09:38:38

+0

我同意@Stijn很难从excel中导入数据,但并非总是如此。我们能否看到一个数据的例子(可能是一张表的截图)? – 2013-04-11 09:44:51

+1

你可以使用'xlsx'包的'read.xlsx'函数? – JT85 2013-04-11 11:11:17

回答

0

odbcTableExistsRODBC包的内部函数。这行代码

if (abort && !ans) 
    stop(sQuote(tablename), ": table not found on channel") 

意味着表名存在问题(很明显)。仔细检查表名的大小写,即使sql语句不区分大小写R是!

如果不是问题,请尝试从gdata包中获取read.xls功能。它依靠一个Perl库将excel电子表格转换为csv,然后致电read.table。这意味着您可以将read.xls的任何参数传递给read.table,这有时非常有用。

希望有所帮助。

2

如果您不满意ODBC,我建议您看看XLConnect或其他Excel界面包之一。