簡體   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