我正在尝试锁定一系列 Excel 文件中的单元格块,保护每个文件,并将它们保存在原始位置。我的代码以各种方式工作,除了锁定列会删除所有格式的单元格。我无法在 xlsx 包中手动重新创建格式,因为每个文件都略有不同。
我知道如何在不使用 XLConnect 格式化的情况下将数据输出到 Excel,但我无法让 XLConnect 锁定单元格/保护工作簿。所以我要么寻求使用 XLConnect 锁定单元格的帮助,要么帮助使用 xlsx 锁定单元格而不覆盖格式。
这是我当前的代码(使用 xlsx 包):
wb <- loadWorkbook(file.path)
sheets <- getSheets(wb)
sh <- sheets[[1]]
lock <- CellStyle(wb, cellProtection = CellProtection(locked = TRUE))
rows <- getRows(sh, rowIndex = 9:50)
cells <- getCells(rows, colIndex = 5:6)
lapply(names(cells), function(ii) setCellStyle(cells[[ii]], lock))
.jcall(sh, "V", "protectSheet", "p@ssword")
saveWorkbook(wb, file.path)