r - R:将工作表添加到现有的 Excel 工作簿
问题描述
在我的脚本中,我需要创建一个包含许多工作表的 excel 工作簿,其中前 2 个工作表默认情况下是从另一个工作簿中读取并合并到导出的 excel 中。
我使用xlsx
包来格式化导出 excel。但是,我在包中找不到任何xlsx
可以从 excel 中读取工作表并将其添加到另一个工作表的函数。
这是我阅读第一个 excel 的代码:
template_wb <- loadWorkbook(file = 'template.xlsx')
sheets <- getSheets(wb)
sheet1 <- sheets[[1]]
sheet2 <- sheets[[2]]
在代码的第二部分,我创建了另一个工作簿,其中包含多个工作表,其中 ,sheet1
和sheet2
, 应该是其中之一。
wb<-createWorkbook(type="xlsx")
as_sheet <- createSheet(wb, sheetName = "AS")
dc_sheet <- createSheet(wb, sheetName = "DC")
ro_sheet <- createSheet(wb, sheetName = "RO")
### add content to worksheets
# the suggested code should go there
### save workbook
saveWorkbook(wb, 'out.xlsx')
在向工作簿添加更多数据然后保存工作簿之前,我想添加 to 的内容和tosheet1
的dc_sheet
内容。sheet2
ro_sheet
as_sheet
我怎样才能做到这一点?
解决方案
您可以使用副本,并将其另存为新文件。
wb <- loadWorkbook(file)
# Rename the sheets
wb$setSheetName(0L, "AS")
wb$setSheetName(1L, "DC")
# Delete the aditional sheets
sheets <- getSheets(wb)
lapply(names(sheets)[-(1:2)], function(x) removeSheet(wb, sheetName = x))
# Assign the sheets to the objects of R
sheets <- getSheets(wb)
as_sheet <- sheets[[1]]
dc_sheet <- sheets[[2]]
# Create the new sheet
ro_sheet <- createSheet(wb, sheetName = "RO")
# save workbook
saveWorkbook(wb, 'out.xlsx')
推荐阅读
- timeout - RxJava 超时并杀死底层线程
- javascript - React Link to - 提供绝对路径
- azure-pipelines - Azure Pipelines:在 Azure-Pipelines.yml 中部署到 Kubernetes 集群失败后回滚到某个版本(发布)
- java - Spring Web Security 入口点触发器
- sparql - 如何在 Wikidata 的 SPARQL 查询中从输出中排除值?
- allennlp - 如何使用 AllenNLP 设置完全禁用模型/权重序列化?
- java - 列“brand_id”不能为空
- django - OrderingFilter DRF 的单元测试
- doctrine - 禁用测试环境/单元测试的学说缓存(symfony 4)
- jquery - Keyup 事件(用于输入键)是否适用于平板电脑的 Jquery