r - 通过 R 保持保护(或重新保护)导入的 Excel 工作簿的某些列
问题描述
我有一个带有两张工作表的 Excel 工作簿。在第一个工作表上,B 列和 C 列具有防止编辑的公式(指的是第二个仍然为空的工作表)。现在我通过 R 导入了这个工作簿,将我的数据添加到第二张工作表并保存了工作簿。
library(openxlsx)
wb <- loadWorkbook('Tables.xlsx')
writeData(wb, 'Sheet2', mydf)
saveWorkbook(wb, New_tables.xlsx')
但是,保存工作簿后,工作表 1 的 B 列和 C 列不再受到保护。是否可以添加任何特定功能来保护(仅)表 1 中的列 B 和 C 不被编辑?
谢谢!
解决方案
有一个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)
这会将第一列锁定到填充数据的行并锁定其他任何地方。
推荐阅读
- vue.js - Adobe Animate CC 到 Vue.js 组件中
- php - 大文件的 ftp_get 超时
- grails - 引导日期选择器无法使用 Grails 站点网格 main.gsp 处理我的表单 - 但适用于独立表单
- casting - 为什么作为引用的迭代器项不强制转换为特征对象引用?
- opencl - 英特尔 CPU 上的 OpenCL 管道
- javascript - node.js 超时重启 api 调用
- asp.net-core-webapi - Log4Net 默认行为记录参数
- aem - 强制 AEM 经典 UI 和触控 UI 设计对话框共享相同的 globalDesignPath
- c++ - __xstat 64 位动态符号解析错误
- xamarin - 在 MVVM 中向 Xamarin.Maps 添加多个 Pin 图