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