通过 R 保留(或重新保护)导入的 Excel 工作簿的某些列

Keep protection(or re-protect) certain columns of imported Excel workbook through R

我有一个包含两个 sheet 的 Excel 工作簿。在第一个 sheet 列上,B 和 C 具有防止编辑的公式(指的是第二个,仍然是空的,sheet)。现在我通过 R 导入了这个工作簿,将我的数据添加到第二个 sheet 并保存了工作簿。

library(openxlsx)
wb <- loadWorkbook('Tables.xlsx')
writeData(wb, 'Sheet2', mydf)
saveWorkbook(wb, New_tables.xlsx')

但是,保存工作簿后,sheet1 的 B 列和 C 列不再受保护。是否可以添加任何特定功能来保护(仅)B 列和 C 列免受 sheet 1 的编辑?

谢谢!

有一个 protectWorksheet 函数可以使用。

您需要createStyle设置locked = TRUEFALSE然后您可以控制要锁定的列和行以防止编辑。 例如:

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "NEW")
writeData(wb, "NEW", mtcars)
addStyle(wb, "NEW", rows = 1:nrow(mtcars), cols = 1, gridExpand = TRUE, style = createStyle(locked = FALSE))
protectWorksheet(wb, "NEW", protect = TRUE)
saveWorkbook(wb, "New_tables.xlsx", overwrite = TRUE)

这会将第一列锁定到填充数据的行,并锁定其他任何地方。