首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLConnect 'envir‘错误

XLConnect 'envir‘错误
EN

Stack Overflow用户
提问于 2016-05-17 21:44:09
回答 1查看 76关注 0票数 0

我管理许多Excel报告,并使用R进行预处理并编写输出报告。这很棒,因为我所要做的就是运行R函数并分发报告,而报告编写的其余部分都是非活动时间。报告需要采用Excel格式,因为这是最容易传播的格式,而且受众众多且不是技术性的。一旦对数据进行了预处理,我就可以非常非常简单地使用XLConnect完成这项工作:

代码语言:javascript
复制
file.copy(from = template,
          to = newFileName)

writeWorksheetToFile(file = newFileName,
                     data = newData,
                     sheet = "Data",
                     clearSheets = T)

然而,当我尝试写入新数据时,我的一个报告开始抛出这个错误:

代码语言:javascript
复制
Error in ls(envir = envir, all.names = private) : 
invalid 'envir' argument

此外,在抛出错误之前,函数会占用R 15分钟。正常写入时间小于10秒。我必须承认,我甚至不明白这个错误是什么意思,它没有屈从于我通常的调试方法或任何其他SO解决方案。

我注意到其他人提到了rJava (重新安装这个包不起作用)和日志文件的Java缓存(不确定它在Mac上的位置)。我尤其感到困惑,因为前一天使用完全相同的过程运行报告没有任何问题,而我使用完全相同的过程的其他报告仍然工作得很好。

我没有更新Java、R或我的操作系统,也没有调试/重写任何R代码。因此,从头开始-我如何调查这个'envir‘错误?如果你处在我的位置,你会怎么做?我已经在这上面工作了几天了,我被难住了。

我很乐意提供额外的信息,如果它能为比我更有洞察力的程序员提供更好的上下文:)

EN

回答 1

Stack Overflow用户

发布于 2016-05-31 04:03:52

更新:事实上,我之前的回答(下面)并没有修复这个间歇性错误(正如OP指出的那样,由于Java依赖关系,这个错误很难取消)。相反,我听从了给here的建议,从XLConnect包迁移到了openxlsx,这完全避免了这个问题。

之前的回答:我已经对这个错误感到沮丧了一段时间,包括明显的间歇性和写工作簿时几分钟的R捆绑。

我刚刚意识到问题出在哪里: Excel工作表的名称长度似乎被限制在31个字符以内,而我的R代码生成的工作表名称超过了这个限制。

为了清楚起见,我指的是Excel工作簿中各个选项卡表的名称,而不是工作簿本身的文件名。

将每个工作表名称修剪为不超过31个字符已修复此错误。

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

https://stackoverflow.com/questions/37277952

复制
相关文章

相似问题

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