This function is a preprocessing step before applying the htmlTable()
function.
You use this to style your tables with HTML cascading style sheet features.
addHtmlTableStyle(
x,
align = NULL,
align.header = NULL,
align.cgroup = NULL,
css.rgroup = NULL,
css.rgroup.sep = NULL,
css.tspanner = NULL,
css.tspanner.sep = NULL,
css.total = NULL,
css.cell = NULL,
css.cgroup = NULL,
css.header = NULL,
css.header.border_bottom = NULL,
css.class = NULL,
css.table = NULL,
pos.rowlabel = NULL,
pos.caption = NULL,
col.rgroup = NULL,
col.columns = NULL,
padding.rgroup = NULL,
padding.tspanner = NULL,
spacer.celltype = NULL,
spacer.css.cgroup.bottom.border = NULL,
spacer.css = NULL,
spacer.content = NULL
)appendHtmlTableStyle(
x,
align = NULL,
align.header = NULL,
align.cgroup = NULL,
css.rgroup = NULL,
css.rgroup.sep = NULL,
css.tspanner = NULL,
css.tspanner.sep = NULL,
css.total = NULL,
css.cell = NULL,
css.cgroup = NULL,
css.header = NULL,
css.header.border_bottom = NULL,
css.class = NULL,
css.table = NULL,
pos.rowlabel = NULL,
pos.caption = NULL,
col.rgroup = NULL,
col.columns = NULL,
padding.rgroup = NULL,
padding.tspanner = NULL,
spacer.celltype = NULL,
spacer.css.cgroup.bottom.border = NULL,
spacer.css = NULL,
spacer.content = NULL
)
x
with the style added as an attribute that the htmlTable then can use for formatting.
The object that you later want to pass into htmlTable()
.
A character strings specifying column alignments, defaulting to 'c'
to center. Valid chars for alignments are l = left, c = center and r = right. You can also specify
align='c|c'
and other LaTeX tabular formatting. If you want to set the alignment of the
rownames this string needst to be ncol(x) + 1
, otherwise it automatically
pads the string with a left alignment for the rownames.
A character strings specifying alignment for column header,
defaulting to centered, i.e. [paste][base::paste](rep('c',ncol(x)),collapse='')
.
The justification of the cgroups
CSS style for the rgroup, if different styles are wanted for each of the rgroups you can just specify a vector with the number of elements.
The line between different rgroups. The line is set to the TR element of the lower rgroup, i.e. you have to set the border-top/padding-top etc to a line with the expected function. This is only used for rgroups that are printed. You can specify different separators if you give a vector of rgroup - 1 length (this is since the first rgroup doesn't have a separator).
The CSS style for the table spanner.
The line between different spanners.
The css of the total row if such is activated.
The css.cell element allows you to add any possible CSS style to your table cells. See section below for details.
The same as css.class
but for cgroup formatting.
The header style, not including the cgroup style
The header bottom-border style, e.g. border-bottom: 1px solid grey
The html CSS class for the table. This allows directing html formatting through CSS directly at all instances of that class. Note: unfortunately the CSS is frequently ignored by word processors. This option is mostly inteded for web-presentations.
You can specify the the style of the table-element using this parameter
Where the rowlabel should be positioned. This value can be "top"
,
"bottom"
, "header"
, or a integer between 1
and nrow(cgroup) + 1
. The options
"bottom"
and "header"
are the same, where the row label is presented at the same level as
the header.
Set to "bottom"
to position a caption below the table
instead of the default of "top"
.
Alternating colors (zebra striping/banded rows) for each rgroup
; one or two colors
is recommended and will be recycled.
Alternating colors for each column.
Generally two non-breakings spaces, i.e.
, but some
journals only have a bold face for the rgroup and leaves the subelements unindented.
The table spanner is usually without padding but you may specify padding
similar to padding.rgroup
and it will be added to all elements, including the rgroup elements.
This allows for a 3-level hierarchy if needed.
When using cgroup the table headers are separated through a empty
HTML cell that is by default filled with
(no-breaking-space) that prevents the cell
from collapsing. The purpose of this is to prevent the headers underline to bleed into one
as the underline is for the entire cell. You can alter this behavior by changing this option,
valid options are single_empty
, skip
, double_cell
. The single_empty
is the default,
the skip
lets the header bleed into one and skips entirely, double_cell
is for having
two cells so that a vertical border ends up centered (specified using the align
option).
The arguments are matched internally using base::match.arg so you can specify only a part
of the name, e.g. "sk"
will match "skip"
.
Defaults to none
and used for separating cgroup headers.
Due to a browser bug this is sometimes ignored and you may therefore need to set this
to 1px solid white
to enforce a white border.
If you want the spacer cells to share settings you can set it here
Defaults to
as this guarantees that the cell is not collapsed
and is highly compatible when copy-pasting to word processors.
The css.cell
parameter allows you to add any possible CSS style
to your table cells. css.cell
can be either a vector or a matrix.
If css.cell
is a vector, it's assumed that the styles should be repeated
throughout the rows (that is, each element in css.cell specifies the style
for a whole column of 'x').
In the case of css.cell
being a matrix of the same size of the x
argument,
each element of x
gets the style from the corresponding element in css.cell. Additionally,
the number of rows of css.cell
can be nrow(x) + 1
so the first row of of css.cell
specifies the style for the header of x
; also the number of columns of css.cell
can be ncol(x) + 1
to include the specification of style for row names of x
.
Note that the text-align
CSS field in the css.cell
argument will be overriden
by the align
argument.
Excel has a specific css-style, mso-number-format
that can be used for improving the
copy-paste functionality. E.g. the style could be written as: css_matrix <- matrix( data = "mso-number-format:\"\\@\"", nrow = nrow(df), ncol = ncol(df))
The function stores the current theme (see setHtmlTableTheme()
) + custom styles
to the provided object as an base::attributes()
. It is stored under the element
htmlTable.style
in the form of a list object.
Other htmlTableStyle:
hasHtmlTableStyle()
library(magrittr)
matrix(1:4, ncol = 2) %>%
addHtmlTableStyle(align = "c", css.cell = "background-color: orange;") %>%
htmlTable(caption = "A simple style example")
Run the code above in your browser using DataLab