执行用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工作簿上运行SQL查询,甚至可以指定所需单元格的范围。

考虑连接到Excel,将单元格中的SQL语句检索到一个数据框中 ,然后遍历这样一个查询来作为调用传递给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)