0

我正在尝试将我在 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 找不到我的文件?

4

1 回答 1

0

我也面临同样的问题,但这个错误来自缓存。尝试做两件事:

  1. 使用从会话中删除您的 xlApp 和 xlWbk 对象rm("xlApp", "xlWbk")
  2. 使用清除缓存gc()
  3. 重新启动您的 R 会话(如果在上述 2 个步骤后错误得到解决,您可以跳过此步骤)。

干杯!

继续编码!

于 2021-09-24T16:06:31.950 回答