更改 openxlsx 工作簿中的单元格值

Change cell value in openxlsx workbook

我想使用 openxlsx 更改工作簿中的单个单元格 sheet 并将其写回相同的 .xlsx 而不会丢失样式、验证、原始 .xlsx 文件等。我规定了 openxlsx,因为它没有 rJava 依赖项。

这是一个虚拟工作簿:

library(openxlsx)

## Make a dummy workbook to read in
write.xlsx(list(iris = iris, mtcars = mtcars), file = 'test.xlsx')

wb <- loadWorkbook('test.xlsx')
isS4(wb)

如何更改单元格 [2,1] 的值,使其与原始 .xlsx 文件基本相同,但单元格已更改?

我当然可以阅读练习册,但我不知道这对我有什么好处。

m <- readWorkbook(wb)
m[2, 1] <- 20
m[1:5,]

writeData 可以帮助您。

test.fpath <- 'test.xlsx'
openxlsx::write.xlsx(list(iris = iris, mtcars = mtcars), file = test.fpath)
.wb <- openxlsx::loadWorkbook(test.fpath)
openxlsx::writeData(
  wb = .wb,
  sheet = 1,
  x = 20,
  xy = c(2,1)
)
openxlsx::saveWorkbook(
  .wb,
  test.fpath,
  overwrite = TRUE
)