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