如何在 R 中导出 Excel 文件?

How to export an Excel file in R?

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

我的问题是:有没有一种方法可以导出 R 中的 .xlsx 文件,只更新我的 Excel 文件中的一个特定工作表,而无需将整个电子表格替换为新的文件?

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

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

# 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)

您可以导入旧的 sheet 作为数据框,而不是从头开始创建新的数据框,read.xlsx(file, sheetIndex, sheetName)

注意:如果您使用短文件路径,如 '~/Downloads/my_sheet.xlsx'.

,则会抛出错误

您可以使用下面的代码解决这个问题。

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)