Я пытаюсь добавить некоторые данные в xlsm-файл. Добавление нового листа не является проблемой. Я в пределах SQL -Server использую R-in-database (R 3.2.2, CRAN 3.2.5). Мой код с использованием библиотеки XLSX:
declare @filename nvarchar(255) = 'D:/TEMP/Test.xlsm'
declare @ind_script nvarchar(2000) = N'
Sys.setenv(JAVA_HOME="D:\\OpenJDK")
library(rJava)
library(xlsxjars)
library(xlsx)
file <- "' + @filename + '"
write.xlsx(
InputDataSet,
file = file,
append = TRUE,
sheetName = "My_Sheet",
col.names = TRUE,
row.names = FALSE
)
'
exec sp_execute_external_script
@language = N'R',
@script = @ind_script,
@input_data_1 = N'select * from sys.tables'
Этот скрипт добавляет новый лист «my_sheet» в файл Test.xlsm. Выдается ошибка, если лист с таким именем уже существует. Мне нужно добавить данные - т.е. "InputDataSet" - на существующий лист. Как я могу это сделать?
Добавление данных в существующие листы XLS- или XLSX-файлов не является альтернативой. Я также безуспешно проверил openxslx и XLConnect (я даже не мог понять, как там обрабатываются xlsm-файлы).