从 R 写入 Excel 文件的单个单元格

Write single cell of Excel file from R

readxl 使从 Excel 读取到 R 变得容易: read_excel('test.xlsx',range = 'E2',col_names = FALSE)

但是等效的写入命令不存在,对吗? write_excel('test.xlsx',range = 'E2','What I want to put in the cell',col_names = FALSE)

有谁知道写单个单元格的方法吗?

背景故事:Excel 文件来自其他人并且有一堆我不想弄乱的格式。我只想在一个单元格中插入一个新值。 [这是最小工作示例,实际问题更难。但如果我能让它为单个细胞工作,我就能让它为我的需要工作。]

正如@r2evans 已经建议的那样,openxlsx 允许您通过 openxlsx::writeData 将单个值写入 excel 文件,例如以下代码将单个值写入单元格“B2”:

openxlsx::writeData(wb, sheet = "mysheet", data.frame(value ="My Value"),
                    startCol = "B", startRow = 2, colNames = FALSE)

如以下可重现的示例所示,writeData 还保留现有文件的任何格式:

library(openxlsx)

# Create a workbook
wb <- createWorkbook()
addWorksheet(wb, "mysheet")

# Write one value to B2
writeData(wb, sheet = "mysheet", data.frame(value ="My Value"),
          startCol = "B", startRow = 2, colNames = FALSE)
# Add some styles
addStyle(wb, sheet = "mysheet", rows = 2, cols = "B", 
         style = createStyle(textDecoration = "Bold", fgFill = "yellow"))
saveWorkbook(wb, "myxl.xlsx", overwrite = TRUE)

# Reopen the xl file and write a new value to B2 to check that formatting is retained
wb <- loadWorkbook("myxl.xlsx")
writeData(wb, sheet = "mysheet", data.frame(value = "My new Value"),
          startRow = 2, startCol = "B", colNames = FALSE)
saveWorkbook(wb, "myxl1.xlsx", overwrite = TRUE)