繁体   English   中英

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

[英]Executing SQL queries written in Excel Cells in R

我正在Excel电子表格中编写SQL查询,并且已使用ODBC将Rstudio与SQL服务器链接。

现在,在R中使用sqlQuery命令,可以运行任何查询。 例如,

library(RODBC) 
mycon <- odbcConnect("MYSQLSERVER") 
a1 <- sqlQuery(mycon,paste("SELECT TOP 10 * FROM USER"]

如果在Excel文件的特定单元格(或不同单元格)中写入了相同的查询(或多个查询),如何获得输出?

编辑excel文件将用作输入,并且所有查询都写入excel文件后,R代码将运行。 仅向用户提供编辑excel文件的权限。 如何连接所有这些过程? 我只需要开始。 我找到了XLConnect和readNamedRegion()函数,但这就是它的范围。

使用相同的软件包RODBC,您实际上可以在Excel工作簿上运行SQL查询,甚至可以指定所需单元格的范围。

考虑连接到Excel,将单元格中的SQL语句检索到数据框中 ,然后遍历此类querydf以作为对SQL Server的调用的传递。

library(RODBC)

# EXCEL CONNECTION -----------------------------
xlconn <- odbcDriverConnect('Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
                             DBQ=C:\\Path\\To\\ExcelWorkbook.xlsx')
# WHOLE WORKSHEET (FIRST ROW AS HEADERS)
queriesdf <- sqlQuery(xlconn, "SELECT * FROM [Sheet1$]")
# SPECIFIC RANGE (FIRST ROW AS HEADERS)
queriesdf <- sqlQuery(xlconn, "SELECT * FROM [Sheet1$A1:Z100]")
close(xlconn)

# SQL SERVER CONNECTION ------------------------
mssqlconn <- odbcConnect("MYSQLSERVER")     
# LIST OF DATA FRAMES
dfList <- lapply(queriesdf$QueryCol, function(q) sqlQuery(mssqlconn, q))
close(mssqlconn)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM