首页 > 解决方案 > R包openxlsx中的setColWidths引发错误

问题描述

上周我在 R 中有一些代码对我来说运行得很好。本周,我收到以下错误:

setColWidths (wb, 1, cols = 1:6, widths = "auto", hidden = rep(FALSE, : object 'cols' not found) 中的错误

这发生在我第一次调用 setColWidths 期间。我的第二个电话给出了这个错误:

setColWidths (wb, 1, cols = c(7), widths = "auto", hidden = rep(TRUE, : object 'cols' not found

没有数据输入——只需运行它,它就会生成一个电子表格。有什么东西坏了吗?我已经重新安装了 OpenXLSX。

library(openxlsx)

cat("\f")

wb<-createWorkbook()
addWorksheet(wb, "Client Input Form")
writeData(wb, 1, "What Is Your Name?", xy=c(1,1))
writeData(wb, 1, "What Is Your Favorite Color?", xy=c(2,1))
writeData(wb, 1, "What Is Your Quest?", xy=c(3,1))
writeData(wb, 1, "What Is The Capital of Assyria?", xy=c(4,1))

writeData(wb, 1, "Alex", xy=c(1,2))
writeData(wb, 1, "Lee", xy=c(1,3))
writeData(wb, 1, "Maya", xy=c(1,4))

writeData(wb, 1, "Red", xy=c(7,1))
writeData(wb, 1, "Yellow", xy=c(7,2))
writeData(wb, 1, "Blue", xy=c(7,3))

dataValidation(wb, 1, col = 2, rows = 2:4, type = "list", value ="$G$1:$G$3")
setColWidths(wb, 1, cols=1:6, widths = "auto", hidden = rep(FALSE, length(cols)), ignoreMergedCells = FALSE)
setColWidths(wb, 1, cols=c(7), widths = "auto", hidden = rep(TRUE, length(cols)), ignoreMergedCells = FALSE)

unprotect<-createStyle(locked = FALSE)
addStyle(wb, sheet=1, unprotect, rows=2:4, cols=2:4, gridExpand = TRUE)
protectWorksheet(wb, 1, protect = TRUE, lockFormattingCells = FALSE, lockFormattingColumns = TRUE, lockInsertingColumns = TRUE, lockDeletingColumns = TRUE, password="somepw")

saveWorkbook(wb, file = file.choose(), overwrite = TRUE)

标签: ropenxlsx

解决方案


setColWidths(wb, 1, cols=1:6, widths = "auto", hidden = rep(FALSE,
length(cols)), ignoreMergedCells = FALSE) 
setColWidths(wb, 1,
cols=c(7), widths = "auto", hidden = rep(TRUE, length(cols)),
ignoreMergedCells = FALSE)

Should be:

setColWidths(wb, 1, cols=1:6, widths = "auto", hidden = rep(FALSE, length(1:6)), ignoreMergedCells = FALSE)
setColWidths(wb, 1, cols=c(7), widths = "auto", hidden = rep(TRUE, length(7)), ignoreMergedCells = FALSE)

推荐阅读