【问题标题】:R script RDCOMClient can't open xlsx fileR脚本RDCOMClient无法打开xlsx文件
【发布时间】:2020-11-24 21:27:03
【问题描述】:

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

【问题讨论】:

    标签: r excel xlsx rdcomclient


    【解决方案1】:

    我也遇到了同样的问题,但是这个错误是由于缓存造成的。尝试做两件事:

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

    干杯!

    继续编码!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多