问题描述
我想要一个表格 dt1 格式的表格(旋转和冻结的列名,窄列宽,水平和垂直滚动条)加上冻结第一列。 我可以通过使用“extensions =c(“FixedColumns”)”来冻结第一列,但随后列宽增加(见表 dt2),尽管使用了“columnDefs”,但我无法定义更小的列宽。
有人可以帮我吗?
library(DT)
headerCallback <- c(
"function(thead,data,start,end,display){"," var $ths = $(thead).find('th');"," $ths.css({'vertical-align': 'bottom','white-space': 'Nowrap'});"," var betterCells = [];"," $ths.each(function(){"," var cell = $(this);"," var newDiv = $('<div>',{height: 'auto',width: cell.height()});"," var newInnerDiv = $('<div>',{text: cell.text()});"," newDiv.css({margin: 'auto'});"," newInnerDiv.css({"," transform: 'rotate(180deg)',"," 'writing-mode': 'tb-rl'," 'white-space': 'Nowrap'"," });"," newDiv.append(newInnerDiv);"," betterCells.push(newDiv);"," });"," $ths.each(function(i){"," $(this).html(betterCells[i]);","}"
)
df <- iris[,c(5,1:4,1:4)]
dt1 <- datatable(df,rownames=FALSE,class = 'cell-border stripe',extensions = c("FixedHeader"),#,c("FixedColumns","FixedHeader")
options = list(dom = 't',ordering=F,#no column sorting
scrollY = '600px',paging = FALSE,scrollX = TRUE,fixedHeader=TRUE,headerCallback = JS(headerCallback),fixedColumns = list(leftColumns = 1)))
dt2 <- datatable(df,extensions =c("FixedColumns","FixedHeader"),options = list(dom = 't',#no column sorting
scrollY = '600px',#define col withs does not help
autoWidth = TRUE,columnDefs = list(list(width = '15px',targets = "_all")),columnDefs = list(list(className = "Nowrap",##
headerCallback = JS(headerCallback),fixedColumns = list(leftColumns = 1)))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)