为啥我不能使用 write.xlsx 追加 [重复]
Posted
技术标签:
【中文标题】为啥我不能使用 write.xlsx 追加 [重复]【英文标题】:Why I can not append using write.xlsx [duplicate]为什么我不能使用 write.xlsx 追加 [重复] 【发布时间】:2021-03-30 02:05:16 【问题描述】:我是 R 的新手!!!!我会感谢更有经验的人的一点帮助!!! :)
我使用 write.xlsx 创建一个 xls 文件。但我需要有不同的床单。我使用的代码,即使我使用 append=T 也不会追加!!!它会覆盖!!我无法理解为什么!!!我的代码有什么问题吗?
我有一个包含 10 个数据框(年)的列表(YearList)。我想将每个数据框(年份)导出到一个 excel 文件中的不同工作表。我在这里搜索过,找到了一些解决方案,但它们对我不起作用而且我不知道为什么!
我已经尝试过这些: 1.
for (i in 1:10)
write.xlsx(YearList[[i]], file="C:\\Users\\mmm\\Desktop\\R\\years.xlsx", sheetName =
paste0("Sheet_",i,".xlsx"), row.names=F, append=T)
for (i in 1:10)
write.xlsx(YearList[[i]],file="C:\\Users\\mmm\\Desktop\\R\\years.xlsx",
sheetName = years[i], row.names=F, append=T)
(years[i]
是年份名称的向量)
无论我选择运行什么,唯一发生的事情是文件 years.xlsx 被创建但只有一张,最后一张!而不是追加是覆盖!!!为什么会这样?我能做什么??
非常感谢!!
【问题讨论】:
【参考方案1】:试试这个:
library(xlsx)
#Workbook
wb = createWorkbook()
#Lapply
lapply(names(Yourlist), function(s)
sht = createSheet(wb, s)
addDataFrame(Yourlist[[s]], sht)
)
saveWorkbook(wb, "Yourfile.xlsx")
如果您的列表中没有名称,您应该在之前运行下一个代码:
#Code
names(Yourlist) <- paste0('df',1:length(Yourlist))
【讨论】:
非常感谢您的回答,但尝试执行此代码时出现 Java 错误,不知道如何修复。以上是关于为啥我不能使用 write.xlsx 追加 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用write.xlsx将数据框写入R中的excel时如何以粗体打印顶行