通过 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 = TRUE
或FALSE
然后您可以控制要锁定的列和行以防止编辑。
例如:
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)
这会将第一列锁定到填充数据的行,并锁定其他任何地方。
我有一个包含两个 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 = TRUE
或FALSE
然后您可以控制要锁定的列和行以防止编辑。
例如:
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)
这会将第一列锁定到填充数据的行,并锁定其他任何地方。