首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据写入xlsm

将数据写入xlsm
EN

Stack Overflow用户
提问于 2017-12-20 00:48:41
回答 1查看 632关注 0票数 4

I‘sa data.table:。

代码语言:javascript
复制
> aDT <- data.table(colA = "apple", colB = "banana", colC = "4")
> aDT
    colA   colB colC
1: apple banana    4

我需要将这个表写入xlsm中的工作表(它有宏)。

已经尝试过几种方法来连接到xlsm。都失败了。

代码语言:javascript
复制
# Method 1
require(XLConnect)
wb <- loadWorkbook(filename = "sample.xlsm", create = FALSE)
Error: OutOfMemoryError (Java): Java heap space

# Method 2
require(openxlsx)
wb <- loadWorkbook(xlsxFile = "sample.xlsm")
Error in grepl(target, commentsXML) : invalid 'pattern' argument

# Method 3
require(openxlsx)
wb <- loadWorkbook(file = "sample.xlsm")
Error in grepl(target, commentsXML) : invalid 'pattern' argument

然后,我尝试在另一个新的xlsm上使用相同的代码,它们都起作用了。

我的"sample.xlsm“中的一些问题(不确定它们与问题有何关系)

  1. 20
  2. 即使使用Excel,也要花1-2分钟打开它。
  3. 我将要覆盖的工作表被其他工作表中的公式所引用
  4. 每次Excel启动消息"..包含指向一个或多个.的链接可能是不安全的。如果您信任这些链接,请更新.“
  5. 禁用消息栏上的安全警报

问题:如何解决它?或者其他将数据写入xlsm的替代方法?

我找到了一些其他的帖子,但它们要么不是为我的问题工作,要么就是过时了。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-06-22 08:37:30

您的文件相当大,我可能会在R中进行更多的分析,并将更现成的数据导出到Excel中,或者将数据加载到数据库中,并将数据直接从数据库加载到Excel中。

也就是说,在您的方法1中,您需要在加载包之前指定为rJava ( XLConnect所依赖的)提供了多少内存。因此:

代码语言:javascript
复制
options(java.parameters = "-Xmx22000m")

您可能没有足够的内存用于此,但这就是您获得此错误消息的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47897319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档