使用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链接描述