【问题标题】:How to export an Excel file in R?如何在 R 中导出 Excel 文件?
【发布时间】:2020-11-05 12:36:37
【问题描述】:

我有一个包含 8 个工作表的 Excel 电子表格。每个工作表都有不同的数据,我有一个 R 代码来更新它们。

我的问题是:有没有办法将.xlsx 文件导出到R 中以仅更新我的Excel 文件中的一个特定工作表,而不用将整个电子表格替换为新文件?

在我之前的尝试中,使用 openxlsx 包,我刚刚创建了一个全新的文件,这并没有解决我的问题。

【问题讨论】:

    标签: r excel openxlsx


    【解决方案1】:

    您可以使用以下代码解决此问题。

    library(migrittr)
    library(openxslx)    
    
    file_path = '/home/user/Downloads/my_sheet.xlsx'
    
    df <- data.frame()
    
    file_path %>%     
    
              loadWorkbook() %T>%
        
              removeWorksheet(sheet = "Sheet1") %T>%
     
              addWorksheet(sheetName = "Sheet1") %T>%
     
              writeData(sheet = "Sheet1", x = df) %T>%
    
              saveWorkbook(., file = '/home/user/Downloads/my_sheet.xlsx', overwrite = T)
    

    【讨论】:

    【解决方案2】:

    您可以使用以下工作流程来实现它:

    # load environment
    library(xlsx)
    # define file path
    file_path = '/home/user/Downloads/my_sheet.xlsx'
    # load file as a workbook
    file = loadWorkbook(file_path)
    # check the sheets in the file
    tbls = getSheets(file)
    # remove the sheet you want to change
    removeSheet(file, sheetName = "Sheet1")
    # start a new from scratch
    new_sheet = createSheet(file, sheetName = "Sheet1")
    # create a dataframe
    df = data.frame()
    # link the dataframe to the new sheet
    addDataFrame(df, new_sheet, row.names = FALSE)
    # save the workbook/file
    saveWorkbook(file, file_path)
    

    您可以使用read.xlsx(file, sheetIndex, sheetName) 将旧工作表导入为数据框,而不是从头开始创建新数据框。

    注意:使用短文件路径会报错,如'~/Downloads/my_sheet.xlsx'

    【讨论】:

    • 函数getSheets是哪个包?
    • 我编辑了我的答案并添加了library(xlsx)。所有功能都内置在 xlsx 包中。检查一下,让我知道它是否适合你!
    猜你喜欢
    • 2015-08-12
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2017-10-24
    相关资源
    最近更新 更多