67

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.

danas.zuokas
  • 4,551
  • 4
  • 29
  • 39

1 Answers1

142

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.

zx8754
  • 52,746
  • 12
  • 114
  • 209
G. Cocca
  • 2,456
  • 1
  • 12
  • 13
  • Is there any way to alignt cell contents vertically?I am trying to reproduce [this answer](https://stackoverflow.com/a/51973434/16936515) using fluidPage instead of fluidRow layout. When I replace fluidRow with fluidPage text and checkboxes in table do not layout vertically. – gpinigin Feb 08 '23 at 23:07