在我的脚本中,我需要创建一个包含许多工作表的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')
我想先将sheet1
的内容添加到dc_sheet
,再将sheet2
的内容添加到ro_sheet
,然后再将更多数据添加到as_sheet
中,然后保存工作簿。
我该怎么做?
答案 0 :(得分:0)
我很确定一个简单的赋值语句就能解决问题:
template_wb <- loadWorkbook(file = 'template.xlsx')
sheets <- getSheets(template_wb)
sheet1 <- sheets[[1]]
sheet2 <- sheets[[2]]
wb<-createWorkbook(type="xlsx")
as_sheet <- createSheet(wb, sheetName = "AS")
dc_sheet <- createSheet(wb, sheetName = "DC")
ro_sheet <- createSheet(wb, sheetName = "RO")
dc_sheet<-sheet1
ro_sheet<-sheet2
# Your code here
saveWorkbook(wb, 'out.xlsx')
我尝试了一下,效果很好
答案 1 :(得分:0)
您可以使用副本,并将其另存为新文件。
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')