加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用write.xlsx将现有工作表替换为R包xlsx

发布时间:2020-12-14 16:25:07 所属栏目:Java 来源:网络整理
导读:我使用的是包xlsx版本:0.0.7日期:2014-08-01.在R版本3.0.1(2013-05-16) – “好运动”平台:i386-w64-mingw32 / i386(32位). 我有一个xlsx文件,至少有2张(比如A和B).我需要从A读取数据,编辑它们并将它们保存在B中.这必须在期刊基础上完成. 我可以使用read.
我使用的是包xlsx版本:0.0.7日期:2014-08-01.在R版本3.0.1(2013-05-16) – “好运动”平台:i386-w64-mingw32 / i386(32位).

我有一个xlsx文件,至少有2张(比如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)

但它给了我这个错误:

Error in .jcall(wb,"Lorg/apache/poi/ss/usermodel/Sheet;","createSheet", :
java.lang.IllegalArgumentException: The workbook already contains a sheet of this name

我真的需要多次更换现有的纸张.我怎样才能做到这一点?

谢谢,
菲利波

解决方法

如果要将新数据帧保存在现有excel文件中,首先必须加载xlsx文件:
wb <- loadWorkbook(file)

你有哪些床单你会得到这样的:

sheets <- getSheets(wb)

您可以轻松地删除和添加(并因此替换)工作表:

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

你可以使用数据框填充工作表:

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

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

saveWorkbook(wb,file)

顺便说一句:xlsx-package的文档非常好,对这些问题很有帮助:)
http://cran.r-project.org/web/packages/xlsx/xlsx.pdf

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读