使用RODBC读取.xls文件时,不使用colname

我还有一个令人困惑的问题。

我需要用RODBC读取.xls文件。 基本上我需要一张表格中所有单元格的matrix,然后使用greps和strsplits等来获取数据。 由于每个工作表按不同的顺序包含多个表格,而某些文本字段与其他选项之间的内容,我需要像readLines()这样的函数,但是对于Excel表格。 我相信RODBC是做到这一点的最佳方式。

我的代码的核心是以下function:

 .read.info.default <- function(file,sheet){ fc <- odbcConnectExcel(file) # file connection tryCatch({ x <- sqlFetch(fc, sqtable=sheet, as.is=TRUE, colnames=FALSE, rownames=FALSE ) }, error = function(e) {stop(e)}, finally=close(fc) ) return(x) } 

然而,无论我尝试什么,总是将提到的表的第一行作为返回dataframe的variables名称。 不知道如何解决这个问题。 根据文档, colnames=FALSE应该防止这种情况。

我想避免xlsReadWrite包。 编辑:和gdata包。 客户端在系统上没有Perl,不会安装它。


编辑:

我放弃了xlsReadWrite包中的read.xls() 。 除了名称的问题,事实certificateRODBC不能真正阅读像斜杠这样的特殊符号的单元格。 “dd / mm / yyyy”格式的date只给了NA。

看着sqlFetch,sqlQuery和sqlGetResults的源代码,我意识到这个问题在驱动程序中更有可能。 不知何故,该工作表的第一行被视为一些列function,而不是一个普通的单元格。 所以,而不是colnames,它们相当于DB字段名称。 这是一个选项,你不能设置…

你可以在gdata中使用基于Perl的解决scheme吗? 这碰巧也是可移植的…