R で整理した重要なデータを既存のワークブック (xlsx ファイル) の既存のテーブルにしようとしています。データのキュレーションが完了した後、次のコードがあります。
file <- "U:/Reporting/Template-Business_Report.xlsx"
xlApp <- COMCreate("Excel.Application")
xlWbk <- xlApp$Workbooks()$Open(Filename = file)
Sys.sleep(1)
sheet <- xlWbk$Worksheets("DataSet")
range <- sheet$Range("Table1")
range[["Value"]] <- asCOMArray(table)
newfile <- paste(sub("Template", state, file),format(Sys.time(), format = "%y%m%d %H%M"))
xlWbk$Save() # save the workbook
xlWbk$SaveAS(Filename =asCOMArray(newfile)) # save as a new workbook
xlApp$Quit()
ただし、ファイル名に対して何をしても (以下に試した例を示します)、次のエラーが発生します。
Error in .COM(x, name, ...) :
Cannot locate 0 name(s) Workbooks in COM object (status = -2147418111)
ファイルは存在しますが、機能しません。(バックグラウンドで)開いているのではないかと思います。それがエラーをスローする理由ですが、閉じることもできません。
私も試します:
file <- "U:\\Template-Business_Report.xlsx"
file <- "Template-Business_Report.xlsx"
これと同様にxlWbk
。
xlWbk <- xlApp$Workbooks()$Open(Filename = file , 0, TRUE)
RDCOMClient がファイルを見つけられないのはなぜですか?