r - openxlsx 在页眉/页脚上添加多行
问题描述
我正在尝试以某种格式构建 excel xlsx 工作簿的标题。有些字符串太大,需要包裹起来。
但是当我使用strwrap添加\n字符时,setHeaderFooter 告诉我我有三个以上的参数
例如:
require (openxlsx)
require (tidyverse)
wb0 <- createWorkbook()
addWorksheet(wb0, "Sheet 1")
label <- "&B EJECUTIVOS DE CUENTA: &B"
value <- "FANARA ARIEL GUSTAVO:476, BARETTO ANA SILVINA:34, NO APLICA:32, SANTOS MAXIMILIANO ARIEL:21, AVILA ROBERTO:19, REGGI PABLO:9, Otros:51"
setHeaderFooter (
wb0, sheet = 1
, header = c (
# "left side / izquierda"
strwrap (
x = paste0 (
label, " "
, substr (value, start = 1, stop = 360)
)
, width = 45
, prefix = "\n", initial = ""
)
, "center header / centro"
, "rigth side / derecha"
)
, footer = c (
"&[Date]"
, NA
, "&[File]"
)
)
解决方案
strwrap
正在创建一个长度为 4 的向量,因此标题中的元素总数为 6,而不是所需的 3 setHeaderFooter
。
strwrap(x = paste0 (label, " ", substr (value, start = 1, stop = 360)),
width = 45, prefix = "\n", initial = "")
[1] "&B EJECUTIVOS DE CUENTA: &B FANARA ARIEL" "\nGUSTAVO:476, BARETTO ANA SILVINA:34, NO" "\nAPLICA:32, SANTOS MAXIMILIANO ARIEL:21,"
[4] "\nAVILA ROBERTO:19, REGGI PABLO:9, Otros:51"
因此,让我们将其包装成一个字符串向量paste
:
paste(strwrap(x = paste0 (label, " ", substr (value, start = 1, stop = 360)),
width = 45, prefix = "\n", initial = ""),
collapse="")
[1] "&B EJECUTIVOS DE CUENTA: &B FANARA ARIEL\nGUSTAVO:476, BARETTO ANA SILVINA:34, NO\nAPLICA:32, SANTOS MAXIMILIANO ARIEL:21,\nAVILA ROBERTO:19, REGGI PABLO:9, Otros:51"
现在您将获得一个包含函数期望的 3 个元素的标题。下面是 Excel 文件中的标题:
推荐阅读
- typescript - TypeScript 将 camelCase 键转换为 snake_case
- amazon-web-services - 有没有办法以编程方式列出 AWS API Gateway 上部署的 API?
- r - R中的Webscraping来自Dataframe
- corda - Corda 交易基本问题
- java - 使用 Android Studio 的 PUT 请求
- python - 如何在 spyder 中导入和打印单独的 txt 文件?
- python - pipenv 未安装外部包的依赖项:ModuleNotFoundError
- mysql - nodejs mysql连接池在每个require语句后不断重新初始化
- java - 如何有效地将 2 种不同类型的多维集合转换为多维列表
- python - Raspberry Pi 未在 Pyhton 中通过串行通信正确向设备发送指令