Изменить значение ячейки в книге openxlsx

Я хочу использовать openxlsx, чтобы изменить отдельную ячейку на листе рабочей книги и записать ее обратно как тот же .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,]

person Tyler Rinker    schedule 21.09.2020    source источник


Ответы (1)


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
)
person alvaropr    schedule 10.05.2021