69

In my shiny app I am using datatable function from DT library to construct a table and want to align columns on center. I can use formatStyle('column', textAlign = 'center') but it affects only column body and not the header.

1 Answer 1

146
Answer recommended by R Language Collective

We have to set columnDefs in the argument option of the function datatable.

See example below:

library(DT)

datatable(head(iris),
          rownames = FALSE,
          options = list(
            columnDefs = list(list(className = 'dt-center', targets = 0:4))
            )
          )

We have to set the target. In the example all the 5 columns are aligned to "center" (targets = 0:4).

Finally, note that column numbers start from 0, not from 1.

Note: we can use targets="_all" to apply to all columns regardless of number of columns.

1
  • Is there any way to alignt cell contents vertically?I am trying to reproduce this answer using fluidPage instead of fluidRow layout. When I replace fluidRow with fluidPage text and checkboxes in table do not layout vertically.
    – gpinigin
    Commented Feb 8, 2023 at 23:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.