gpt4 book ai didi

javascript - R - 使用 javascript 格式化数据表

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:14 24 4
gpt4 key购买 nike

我正在尝试使用 DT 包在 R 中格式化数据表。我有这样的代码:

library(data.table)
library(DT)
data<-data.table(rbind(c(1,2,3),c(4,5,6)))
colnames(data)<- c('A','B','c')

datatable(data, rownames=F,
colnames=c('A','B','C'),
class='stripe cell-border hover',
options=list(
pageLength=100,
dom='ltp',
initComplete = JS("
function(settings, json) {
$(this.api().table().body()).css({
'background-color': 'red',
'outline-color': 'red',
'margin':'100px',
'color': 'violet',
'text-align': 'center',
'font-family': 'Courier New',
'border-radius': '25px'
});
$(this.api().table().header()).css({
'background-color': '#000',
'color': '#fff',
'outline-color': 'red',
'margin':'100px',
'text-align': 'center',
'font-family': 'Courier New',
'border-radius': '25px'
});
}
")
),
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center; color:black;
font-size:200% ;','Table'),
filter=list(position = 'top')
)

而且我在函数 JS() 中遇到 javascript 问题。它修改背景颜色(但仅在标题中)、字体颜色和样式。但是对齐文本或圆 Angular 的命令不起作用。

为什么会这样?我该如何修改代码来格式化其他东西?

最佳答案

这似乎是一个 bug但 timelyportfolio here 提出了一个解决方法使用 htmlwidgets 中的函数 prependContent

library(data.table)
library(DT)
library(htmlwidgets) #Load htmlwidgets package

data<-data.table(rbind(c(1,2,3),c(4,5,6)))
colnames(data)<- c('A','B','c')

id <- paste0("dt-",htmlwidgets:::createWidgetId()) #Create an id name
dt <- datatable(data, rownames=F, elementId = id, #Assign id name to datatable
colnames=c('A','B','C'),
class='stripe cell-border hover',
options=list(
pageLength=100,
dom='ltp',
initComplete = JS("
function(settings, json) {
$(this.api().table().body()).css({
'background-color': 'red',
'outline-color': 'red',
'margin':'100px',
'color': 'violet',
'text-align': 'center',
'font-family': 'Courier New',
'border-radius': '25px'
});
$(this.api().table().header()).css({
'background-color': '#000',
'color': '#fff',
'outline-color': 'red',
'margin':'100px',
'text-align': 'center',
'font-family': 'Courier New',
'border-radius': '25px'
});
}
")
),
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center; color:black;
font-size:200% ;','Table'),
filter=list(position = 'top')
)

然后你运行htmlwidgets::prependContent

prependContent(
dt,
tags$style(sprintf(
'#%s .dt-right {
text-align: center;
}',id)))

最终结果:

关于javascript - R - 使用 javascript 格式化数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43739218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com