4

我正在使用 R 中的 formattable 包来生成 HTML 表格。我可以使用格式化程序来自定义表格中数据值的外观,例如字体大小、颜色等。但我不知道如何改变表格标题行的外观。我可以使用 col 改变实际的列名.names(),但无法改变它们的外观。

例如,在下表中,如何更改标题行中的文本颜色或背景颜色(mpg、cyl、disp 等)

最终,我打算使用 formattable::as.htmlwidget() 和 library(webshot) 来获取表格的图像文件,请参阅 R 中使用 Formattable 包制作的导出/保存表格的命令

谢谢

library(formattable)

formatRed <- formatter("span"
    , style = x ~ style(color = ifelse(x > 21 , "red", "black")))

formatSize <-  formatter("span"
    , style = x ~ style("font-size" = "8px"))

exTb <- formattable(head(mtcars, 5)
    , table.attr = "class='table table-striped'"
    , list(mpg = formatRed
        , wt = formatSize)
)

exTb
4

1 回答 1

3

您可以使用样式表。您可以将样式表嵌入到.Rmd文件中,也可以将样式表另存为.css文件,然后从.Rmd文件中引用它。如果您想了解有关将样式表嵌入.Rmd文件的更多信息,请参阅此问题。如果您想了解有关引用外部样式表的更多信息,请参阅第 3.1.4.1 节。在我的示例中,我将样式表(<style>...</style>组件)嵌入到我的.Rmd文件中。我的样式表定义了将表格标题的字体更改为 Times New Roman 并将表格标题的字体颜色更改为红色的样式。

---
title: "Test"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

<style>
  thead {
     font-family: "Times New Roman";
     color: red;
  }
</style>

```{r, echo=FALSE}
library(formattable)
df <- data.frame(Change = c(1), My = c(2), Style = c(3))
ft <- formattable(df)
ft
```

通过扩展样式表,您可以影响 HTML 文件中的其他元素。

于 2017-02-23T13:14:35.603 回答