#r
#r
Вопрос:
Я не могу использовать пакет excel.link с R версии 4.0.2 (2020-06-22) — «Снова запускается». Код, который я пытаюсь использовать, работал в предыдущих версиях. Кто-нибудь еще сталкивался с такой же проблемой и нашел способ ее исправить?
Например, следующий код использовался для открытия нового листа Excel с набором данных iris в нем
ExcelPrint = function(rObject) {
library(excel.link)
myExcelProcess = COMCreate("Excel.Application")
xl.workbook.add()
excelRange = myExcelProcess[["ActiveSheet"]]$Range("A1:A1")
xl.write(rObject, excelRange, row.names = FALSE)
}
ExcelPrint(iris)
Комментарии:
1. Я попробовал это и не получил ошибку в моей
R
консоли. МойR
сеанс прерван с неустранимой ошибкой. Что происходит при запуске этого кода?2. Пробовали ли вы альтернативные варианты обработки, такие как
openxlsx
?3. Бен Норрис, я обращаюсь «К Даниэле Хазовой, которая постоянно вдохновляет меня… Ошибка: недопустимая строка класса Дополнительно: Предупреждающее сообщение: В getCOMInstance (name, force = TRUE, silent = TRUE) : Ошибка: недопустимая строка класса «но поведение, которое вы получили, произошло на моем другом компьютере
4. Аллан Кэмерон, чего я пытаюсь достичь, так это возможности открыть Excel с моим набором данных в нем. Я не знаю, как это сделать с openxlsx. Я был бы благодарен, если бы вы указали способ.
Ответ №1:
В итоге я использовал следующую функцию. Он использует пакет openxlsx, как упоминал Аллан в комментариях, и записывает файл xlsx на диск, прежде чем использовать команду командной строки для его открытия.
library(openxlsx)
quickExcelPrint=function(rObject,filename="r_excel_tmp.xlsx",overwrite=FALSE){
if (filename %in% dir() amp; overwrite==FALSE){
stop(paste0("Excel filename ",filename," already exists! Please either specify another filename or set overwrite to TRUE."))
} else{
write.xlsx(rObject, filename)
shell(paste0("start excel ",filename))
}
}
Пример
quickExcelPrint(iris,overwrite = T)