2016-12-15 18 views
0

Я пишу SQL-запросы в таблицах Excel, и я связал Rstudio с SQL-сервером с использованием ODBC.Выполнение SQL-запросов, написанных в ячейках Excel в R

Теперь, используя команду sqlQuery в R, любой запрос может быть запущен. Например,

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

Если же запрос (или количество запросов) записывается в определенной ячейке (или разных ячеек) в файле Excel, как я могу получить выход?

Edit: Файл Excel будет использоваться в качестве входных данных и, когда все запросы записываются в файл Excel, код R будет работать. Пользователь будет предоставлен только для редактирования файла excel. Как подключить весь этот процесс? Мне просто нужно начать. Я нашел XLConnect и функцию readNamedRegion(), но это его масштаб.

ответ

1

С таким же точным пакетом, RODBC, вы можете запускать SQL-запросы в книгах Excel, даже указав диапазон необходимых ячеек.

Рассмотрите возможность подключения к Excel, извлечение операторов SQL в ячейках в фреймворк данных, а затем цикл через такой queriesdf для передачи в виде запросов на выборку 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) 
+0

Спасибо связка :) –

+0

Помог ли вам этот ответ? Любые вопросы? Если это помогло, пожалуйста, примите его (отметьте отметку в сторону), чтобы подтвердить разрешение. – Parfait