如何使用R中的openxlsx将Excel工作表从一个工作簿移动到另一个工作簿?

时间:2016-06-22 02:26:10

标签: r

我正在尝试从3个单独的Excel文件中获取输入,在R中对它们进行一些工作,并将所有三个Excel文件以及我的计算作为单个Excel文件返回。显然这可以手动完成(并且可能更安全),但我希望尽可能自动化。

我一直在使用openxlsx软件包,它非常适合在单个工作簿中阅读,然后附加我在R中完成的工作,但我无法弄清楚如何移动从一个工作簿对象到另一个工作簿对象我试过了:

 wb1 <- loadWorkbook("hi.xlsx")
 wb2 <- loadWorkbook("bye.xlsx")
 wb2[[2]] <- wb1[[1]]

以及其他一些事情,但似乎没有任何效果。我注意到了:

 names(wb1)

将在wb1中给出工作表的名称,但似乎并不是一种移动工作表的方法。有什么想法吗?

提前致谢!

编辑:抱歉 - 我应该更清楚。我想在工作表中读取所有原始格式并将其写入新文件。使用read.xlsx会丢失所有格式。

3 个答案:

答案 0 :(得分:0)

使用xlsx包:

library(xlsx)
wb1 <- read.xlsx("Workbook1.xlsx", sheetIndex = 1)
wb2 <- read.xlsx("Workbook2.xlsx", sheetIndex = 1)
write.xlsx(wb1, "Workbook Joined.xlsx")
write.xlsx(wb2, "Workbook Joined.xlsx", sheetName = "Sheet2", append = T)

答案 1 :(得分:0)

以下是如何使用read.xlsx函数从excel文件中读取数据的示例

 read.xlsx(xlsxFile, sheet = 1, startRow = 1, colNames = TRUE,
      rowNames = FALSE, detectDates = FALSE, skipEmptyRows = TRUE,
      rows = NULL, cols = NULL, check.names = FALSE, namedRegion = NULL)

sheet表示要从中读取数据的工作表的名称或索引。

答案 2 :(得分:0)

我使它的工作方式如下(请注意:这仅适用于具有数据的工作表):

 wb1 <- loadWorkbook("hi.xlsx")
 wb2 <- loadWorkbook("bye.xlsx")

lapply(sheets(wb2), function(s) {
    
  dt <- read.xlsx("bye.xlsx", sheet = s)
  addWorksheet(wb1, sheetName = s)
  writeData(wb1, s, dt)

})