【问题标题】:How to use R to copy a data range from one Excel spreadsheet to another?如何使用 R 将数据范围从一个 Excel 电子表格复制到另一个?
【发布时间】:2018-07-06 07:03:17
【问题描述】:

我想编写一个 R 脚本,从“WorkbookX”中的“WorksheetX”复制数据范围 A5:X1000,并将值粘贴到“WorkbookY”中“WorksheetY”中的相同范围 (A5:X1000)。两个工作簿都在同一个目录中。

这可能吗?

【问题讨论】:

    标签: r excel-2010


    【解决方案1】:

    在我看来,openxlsx 包是写入 Excel 文件的最佳选择。还有更多用于从 Excel 文件中读取的选项(例如 readxl 包。)

    我目前无法在我所在的机器上使用这个包,但这应该可以。

    # NOT TESTED
    library(openxlsx)
    
    foo <- read.xlsx("WorkbookX.xlsx", sheet = "WorksheetX", rows = 5:1000, cols = 1:24)
    
    write.xlsx("WorkbookY.xlsx", sheet = "WorksheetY", startRow = 5, startCol = 1)
    

    【讨论】:

    • 作为更新/跟进,我已经尝试过这个,但得到以下链接中讨论的错误:stackoverflow.com/questions/27952451/… 我仍然无法成功地从一个文件复制到另一个文件。
    • 跟进我上面的评论:我使用 installr::install.rtools() 来修复 zip 问题。具体来说,我使用了 Aniket 的答案。我还必须阅读类似问题中引用的 git 链接:stackoverflow.com/questions/47323832/… 最终我不得不使用以下行来使其工作:'Sys.setenv("R_ZIPCMD" = "C:/Rtools/bin/zip .exe") ## path to zip.exe' 最终,这个解决方案对我不起作用,因为它会删除所有格式,以及工作簿的其余部分。
    【解决方案2】:

    您可以使用 xlsx 包写入多个工作表。您只需要为每个数据框使用不同的 sheetName 并且需要添加 append=TRUE:

    library(xlsx)
    write.xlsx(dataframe1, file="filename.xlsx", sheetName="sheet1")
    write.xlsx(dataframe2, file="filename.xlsx", sheetName="sheet2", append=TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多