首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openxlsx,openxlsx_setOp(“headerStyle”)

openxlsx,openxlsx_setOp(“headerStyle”)
EN

Stack Overflow用户
提问于 2022-08-18 16:54:27
回答 1查看 65关注 0票数 1

关于R中的openxlsx包的问题:

我尝试用函数headerStyle ()来更改“openxlsx_setOp”的默认选项,但我做不到。

为了不每次都在writeData()中定义writeData。

例如:

代码语言:javascript
复制
openxlsx_getOp("headerStyle")
NULL

style <- createStyle(borderColour = "grey")

openxlsx_setOp("headerStyle", style)

openxlsx_getOp("headerStyle")
NULL

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-18 17:06:33

这可能是一个bug (我打开了一个问题)。问题是,openxlsx_setOp在引擎盖下使用as.listvalue参数转换为list。作为一种解决办法,您可以通过headerStyle通过options设置如下所示:

代码语言:javascript
复制
library(openxlsx)

openxlsx_getOp("headerStyle")
#> NULL

style <- createStyle(borderColour = "grey")

options(openxlsx.headerStyle = createStyle(borderColour = "grey"))

openxlsx_getOp("headerStyle")
#> A custom cell style. 
#> 
#>  Cell formatting: GENERAL 
#> 

简单地将as.list替换为list似乎解决了这个问题(至少在这种情况下是这样):

代码语言:javascript
复制
library(openxlsx)

openxlsx_getOp("headerStyle")
#> NULL

style <- createStyle(borderColour = "grey")

openxlsx_setOp2 <- function (x, value) {
  if (is.list(x)) {
    if (is.null(names(x))) {
      stop("x cannot be an unnamed list", call. = FALSE)
    }
    return(invisible(mapply(openxlsx_setOp, x = names(x), 
                            value = x)))
  }
  
  value <- list(value)
  names(value) <- openxlsx:::check_openxlsx_op(x)
  
  options(value)
}

openxlsx_setOp2("headerStyle", createStyle(borderColour = "grey"))
openxlsx_getOp("headerStyle")
#> A custom cell style. 
#> 
#>  Cell formatting: GENERAL 
#> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73406826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档