Tag: rodbc

执行用R中的Excel单元格编写的SQL查询

我正在Excel电子表格中编写SQL查询,并使用ODBC将Rstudio与SQL服务器连接起来。 现在,在R中使用sqlQuery命令,可以运行任何查询。 例如, library(RODBC) mycon <- odbcConnect("MYSQLSERVER") a1 <- sqlQuery(mycon,paste("SELECT TOP 10 * FROM USER"] 如果在Excel文件中的特定单元格(或不同单元格)中写入相同的查询(或多个查询),如何获得输出结果? 编辑 : excel文件将被用作input,一旦所有查询被写入excel文件,R代码将被运行。 用户将只提供编辑excel文件。 我如何连接所有这个过程? 我只需要一个开始。 我发现XLConnect和readNamedRegion()函数,但这是它的程度。

使用RODBC将公式写入Excel文件

我能够使用RODBC软件包将数据框写入Excel文件。 现在我想包含一些公式,例如=A1 ,打开excel文件时会被解释为这样; 包括“= A1”作为数据框中的文本导致excel文件中的string条目“= A1”(公式栏中显示的值为'=A1 ),并且不被解释为公式。

读取打开的Excel文件

我正在尝试使用RODBC软件包中的odbcConnectExcel2007函数读取Excel文件。 当文件没有被使用时它工作正常。 但是,如果是这样,我得到的错误: 警告消息:1:在odbcDriverConnect(con,tabQuote = c(“[”,“]”),…):[RODBC]错误:状态HY000,代码-1028,消息[Microsoft] [ODBC Excel Driver] Can not打开数据库“(未知)”。 它可能不是您的应用程序识别的数据库,或者该文件可能已损坏。 2:在odbcDriverConnect(con,tabQuote = c(“[”,“]”),…):ODBC连接失败 我也尝试在函数说明中包含readOnly = TRUE ,但仍然没有运气。 任何想法的人?

将从sqlQuery导入的所有内容转换为字符

我有一个xls文件被导入到R使用RODBC,其中一列有以下数据: 1,1A,2,3,4 当我使用sqlQuery命令时,这个列被转换成数字,并给出以下内容: 1,NA,2,3,4 如何停止转换此列的sqlQuery ? 我试过as.is=TRUE ,但似乎不工作。 为了使问题更一般化,我需要一切被导入的文本(即不要尝试做任何转换),是否有可能在sqlQuery ?

下载多张作为数据框的xls文件Shiny R

我正在使用R包Shiny来开发我自己的Web应用程序。 我有一个下载button,允许我将数据导出到Excel文件。 在excel文件中,有4张纸,每张纸上都有一个数据框。 例如,在sheet1中有dataTab1,在sheet2中有dataTab2,在sheet3中有dataTab3,在sheet4中有dataTab4。 为此,我正在使用函数downloadHeader()在shiny的server.R中。 我已经使用了两种方法来做到这一点。 方法1:使用R包xlsx output$downloadTab <- downloadHandler( filename = "dataxls.xlsx", content = function(file) { #creation of the workbook dataxls=createWorkbook(file) #creation of the sheets dataTabs1=createSheet(wb=dataxls,sheetName="Compartiments-simulation_sans_changement") dataTabs2=createSheet(wb=dataxls,sheetName="Esperance-simulation_sans_changement") dataTabs3=createSheet(wb=dataxls,sheetName="Compartiments-simulation_avec_changement") dataTabs4=createSheet(wb=dataxls,sheetName="Esperance-simulation_avec_changement") #add the dataframes to the sheets writeWorksheet(dataxls, dataTab1, sheet = "Compartiments-simulation_sans_changement") writeWorksheet(dataxls, dataTab2, sheet = "Esperance-simulation_sans_changement") writeWorksheet(dataxls, dataTab3, sheet = "Compartiments-simulation_avec_changement") writeWorksheet(dataxls, dataTab4, sheet = […]

使用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字段名称。 这是一个选项,你不能设置…

ROBDC SqlSave:如何将数据导出到Excel工作表?

我试图从R导出数据到一个Excel文件(到不同的工作表): library(plyr) library(RODBC) g <- lapply(iris, function(x) as.data.frame(table(x))) save2excel <- function(x) sqlSave(xlsFile, x, tablename = x[1], rownames = FALSE) xlsFile <- odbcConnectExcel("C:/Temp/iris.xls", readOnly = FALSE) l_ply(g, save2excel) odbcCloseAll() 这会产生错误: Error in sqlColumns(channel, tablename) : '1:35': table not found on channel 问题在于tablename = x[1] ,如何将列表名称换成表名?

不可能在R中加载“Excel 5.0 / 7.0(BIFF5)格式”文件

有很多方法可以在R中加载Excel文件,如下所示: http : //www.milanor.net/blog/?p=779 但是,我已经尝试了大部分的选项(RODBC,xlsx,gdata,XLConnect),并且不能让R加载这个由英国政府在2013年发布的特定文件: http://www.ons.gov.uk/ons/rel/npp/national-population-projections/2012-based-projections/rft-table-a3-4-principal-projection—england-population-single-今年的-age.xls 以下是我尝试失败的一个例子: # save the file download.file("http://www.ons.gov.uk/ons/rel/npp/national-population-projections/2012-based-projections/rft-table-a3-4-principal-projection—england-population-single-year-of-age.xls", destfile = "input-data/future-pop-ons.xls") library(RODBC) XLConnect::readWorksheetFromFile(file = "input-data/future-pop-ons.xls", sheet = 3) ## Error: OldExcelFormatException (Java): The supplied spreadsheet seems to be Excel 5.0/7.0 (BIFF5) format. POI only supports BIFF8 format (from Excel versions 97/2000/XP/2003) library(XLConnect) XLConnect::readWorksheet("input-data/future-pop-ons.xls", sheet = 3) Error in (function (classes, fdef, […]

RODBC读取错误,其中excel列包含主要的NAs

我一直在阅读Excel工作表到R使用RODBC包,并已与Excel ODBC驱动程序的问题。 包含(足够的)主要NAs的列被强制逻辑。 在Excel中,数据显示如下: period n n.ft n.pt 1/02/1985 0.008 NA 0.025 1/03/1985 -0.003 NA -0.024 1/04/1985 0.002 NA 0.015 1/05/1985 0.006 NA 0.012 1/06/1985 0.001 NA 0.003 1/07/1985 0.005 NA 0.010 1/08/1985 0.006 NA 0.001 1/09/1985 0.007 NA 0.013 1/10/1985 -0.002 NA 0.009 1/11/1985 0.013 NA 0.019 1/12/1985 -0.004 NA -0.021 1/01/1986 0.008 NA […]