+--------+-------+
| Fruit | Price |
+--------+-------+
| Apple | 12 |
| Apple | 14 |
| Apple | 15 |
| Orange | 2 |
| Orange | 4 |
| Orange | 6 |
| Pear | 3 |
| Pear | 6 |
| Pear | 9 |
+--------+-------+
将dataframe拆分为3个独立的dataframe(Apple、Orange和Pear)后,我打算将每个dataframe导出到单独的Excel工作表(命名为Apple、Orange和Pear)中,但存储在同一个Excel工作簿out.xlsx
中。但是,下面的R代码不起作用。输出是一个Excel工作簿out.xlsx
,只有一个工作表Pear,其中包含Pear数据表。
library(openxlsx)
df <- read_excel("Export excel test.xlsx")
output <- split(df, df$Fruit)
for (i in 1:length(output)){write.xlsx(x = output[i],
file = "Out.xlsx", sheetName = names(output[i]),append = TRUE)}
有人能帮上忙吗?我的实际dataframe有超过400万行,因此我需要将dataframe拆分为不同的工作表,以规避Excel的行限制
看起来您使用的是xlsx包中的命令。
xlsx包还提供write.xlsx
函数,该函数允许您追加到现有工作簿。
library(xlsx)
write.xlsx(subset(iris, subset=Species=="setosa"),
file="iris.xlsx", sheetName = "setosa")
write.xlsx(subset(iris, subset=Species=="versicolor"),
file="iris.xlsx", sheetName = "versicolor", append=TRUE)
write.xlsx(subset(iris, subset=Species=="virginica"),
file="iris.xlsx", sheetName = "virginica", append=TRUE)
openxlsx包在这方面略有不同。这里我将使用一个循环来代替。
library(openxlsx)
output <- split(iris, iris$Species)
wb <- createWorkbook()
for (i in 1:length(output)) {
addWorksheet(wb, sheetName=names(output[i]))
writeData(wb, sheet=names(output[i]), x=output[[i]]) # Note [[]]
}
saveWorkbook(wb, "iris.xlsx", overwrite = TRUE)
我对宏是新手,需要帮助。我在一个文件夹中有几个工作簿,每个工作簿有四个工作表。现在我想要一个mocro它复制数据从每个工作簿(工作表明智)和过去在我的主工作簿(工作表明智)意味着数据1应该被粘贴一个在另一个下面在我的主工作簿在工作表1和工作表2分别。*工作簿名称可以是文件夹中的任何东西。有人能帮我完成整个代码吗?我有宏从一张表到我分配的表的数据,但它复制粘贴数据从打开的表,而不是按表名明智的。有人
所以我有 1500 个 Excel 工作簿,每个工作簿都有 10 张结构完全相同的工作表。我尝试将多个Excel工作簿合并到一个文件中,并使用以下代码成功: 谢谢,努尔贝克
2,3和6-12被跳过。下面是我的代码: 我认为这个问题与行“wb1.sheets(1).Range(”a“&Range(”a1“).end(xlDown).row+1)”有关,但我不知道如何解决这个问题。有什么建议吗?谢谢!
然后另一个问题是工作簿的名称都不同,所有300个。是否有一个宏可以复制我打开的工作簿,而不是每次都输入实际的名称?
我有一个Excel工作簿,其中包含36个不同的工作表,我每两周收到一次,工作表在所有标签上都有共同的标题,并且每个标签上都有不同的唯一标题,但每条记录都有一个唯一的ID,可以有多个记录。 我要做的是从所有的工作表中提取唯一的id,然后将每个工作表中的数据提取到一个工作表中,其中包含所有的公共标题和唯一标题。 我正在考虑使用下面帖子中的代码将其导入Access。连接表并将其导出回Excel中的一个工
这里是VBA新手。 谢谢你的教育!