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

从R中写入Excel文件的单个单元格,r,excel,readxl,R,Excel,Readxl,readxl使从Excel到R的读取变得简单: read\u excel('test.xlsx',range='E2',col\u names=FALSE) 但是等效的write命令并不存在,对吗? write_excel('test.xlsx',range='E2','What I want to put in cell',col_names=FALSE) 有人知道写单个单元格的方法吗 背景故事:Excel文件来自其他人,有一堆我不想弄乱的格式。我只想在一个单元格中插入一个新值。[这是最简单的

readxl
使从Excel到R的读取变得简单:
read\u excel('test.xlsx',range='E2',col\u names=FALSE)

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

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


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

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

如以下可复制示例所示,
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)
库(openxlsx)
#创建工作簿

wb可能会满足您的需要。使用
openxlsx
非常感谢您的建议。我看到
openxlsx
可以进行格式化,但我不想用R重新创建整个工作表,我只想填写一个值。
我不想用R重新创建整个工作表,我只想填写一个值
——这正是您可以使用openxlsx的原因……这个答案的最后三行就是我需要的示例。谢谢
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)