使用write.xlsx用R软件包xlsxreplace现有的工作表

我正在使用软件包xlsx版本:0.5.7date:2014-08-01。 在R版本3.0.1(2013-05-16) – “好运”平台:i386-w64-mingw32 / i386(32位)。

我有一个xlsx文件至less2张(说A和B)。 我需要从A读取数据,编辑它们并将它们保存在B中。这必须在定期的基础上完成。

我可以用read.xlsx从A读取数据。 编辑完数据框后,我想将其保存在同一个xlsx文件的现有工作表B中。

我尝试这一行

 write.xlsx(down, paste0(root,'/registration reports/registration complete_WK.xlsx'), sheet="data_final", col.names=T, row.names=F, append=T, showNA=F) 

但它给我这个错误:

错误.jcall(wb, "Lorg/apache/poi/ss/usermodel/Sheet;", "createSheet", :java.lang.IllegalArgumentException:工作簿已经包含这个名字的一个表

我真的需要多次replace现有的工作表。 我怎样才能做到这一点?

谢谢,菲利波

如果要将新的dataframe保存在现有的Excel文件中,则首先必须加载xlsx文件:

 wb <- loadWorkbook(file) 

哪张你会得到这样的:

 sheets <- getSheets(wb) 

您可以使用以下方式轻松移除和添加(并replace)工作表:

 removeSheet(wb, sheetName="Sheet1") yourSheet <- createSheet(wb, sheetName="Sheet1") 

比你可以用数据框填充表单:

 addDataFrame(yourDataFrame, yourSheet, <options>) addDataFrame(anotherDataFrame, yourSheet, startRow=nrow(yourDataFrame)+2) 

最后一步是将整个工作簿保存为.xlsx:

 saveWorkbook(wb, file) 

顺便说一句:的xlsx包的文件是非常好的,有助于这样的问题:) http://cran.r-project.org/web/packages/xlsx/xlsx.pdf

可能是您的计算机上安装的Java与xlsx库不兼容。 以下线程讨论关于相同包的类似问题: 在此处input链接描述

或者,您的问题可能通过不同的Excel相关包,如XLConnect来解决。 看到这篇文章: 在这里input链接描述