如何实现R Shiny中所有renderTable的列名居中对齐?
解决R Shiny中renderTable列名居中的问题
你之前用column(12, align = "center")仅能让整个表格在面板布局中居中,无法控制表格内部的表头对齐。以下两种方法可以实现列名居中:
方法1:利用renderTable的align参数
该参数可指定每一列的对齐方向,c代表居中。如果列数固定,直接写对应数量的c;列数动态时,可通过代码生成对齐字符串。
修改你的renderTable代码:
output$table_of_item <- renderTable({ if (is.null(rv2$data_batch)) return() t <- dataset_preprocess_batch(rv2$data_batch) head(t, n=20) }, align = paste(rep("c", ncol(t)), collapse = "")) # 动态生成所有列居中的配置
注:此方法会同时让表头和单元格内容都居中,若只想单独设置表头,可使用下方CSS方法。
方法2:用CSS全局控制表头对齐
如果希望所有renderTable生成的表格表头都居中,推荐添加全局CSS样式,无需逐个修改表格的渲染逻辑。在UI部分插入以下代码:
tags$style(HTML(" table th { text-align: center !important; } "))
将这段代码放在fluidPage或其他UI容器内,即可强制所有表格的表头(<th>元素)居中,表格内容的对齐方式不受影响。
内容的提问来源于stack exchange,提问作者ting_H
相关产品推荐
相关产品推荐

