gpt4 book ai didi

excel - 使用 RODBC 读取 .xls 文件时不使用 colnames

转载 作者:行者123 更新时间:2023-12-04 20:48:02 25 4
gpt4 key购买 nike

我还有一个令人费解的问题。

我需要使用 RODBC 读取 .xls 文件。基本上我需要一张包含所有单元格的矩阵,然后使用 greps 和 strsplits 等来获取数据。由于每张工作表包含多个不同顺序的表格,以及一些中间有其他选项的文本字段,我需要一些功能类似于 readLines() 的东西。 ,但对于 excel 工作表。我相信 RODBC 是最好的方法。

我的代码的核心是以下功能:

.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)
}

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

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

编辑:

我放弃了,选择了 read.xls()来自 xlsReadWrite包裹。除了名称问题外,事实证明 RODBC 不能真正读取带有斜杠等特殊符号的单元格。格式为“dd/mm/yyyy”的日期只是给出了 NA。

查看 sqlFetch、sqlQuery 和 sqlGetResults 的源代码,我意识到问题很可能在驱动程序中。不知何故,工作表的第一行被视为一些列特征,而不是普通单元格。因此,它们不是 colnames,而是等效于 DB 字段名称。这是您无法设置的选项...

最佳答案

你能在 gdata 中使用基于 Perl 的解决方案吗?反而?碰巧也是便携的...

关于excel - 使用 RODBC 读取 .xls 文件时不使用 colnames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com