using Dash 
using OrderedCollections, DataFrames   

data_election = OrderedDict(
            "Date" =>
            [
                "July 12th, 2013 - July 25th, 2013",
                "July 12th, 2013 - August 25th, 2013",
                "July 12th, 2014 - August 25th, 2014",
            ],
            "Election Polling Organization" =>
            ["The New York Times", "Pew Research", "The Washington Post"],
        
        "Rep" => [1, -20, 3.512],
        "Dem" => [10, 20, 30],
        "Ind" => [2, 10924, 3912],
        
            "Region" =>
            [
                "Northern New York State to the Southern Appalachian Mountains",
                "Canada",
                "Southern Vermont",
            ],
        
)

df = DataFrame(data_election)

app = dash()

app.layout = dash_datatable(
    data = map(eachrow(df)) do r
      Dict(names(r) .=> values(r))
    end,
    columns=[Dict("name" =>c, "id" => c) for c in names(df)],
    fixed_columns=Dict( "headers" =>  true, "data" =>  1 ),
    style_table=Dict("minWidth" =>  "100%"),
    style_cell=Dict(
        # all three widths are needed
        "minWidth" =>  "180px", "width" =>  "180px", "maxWidth" =>  "180px",
        "overflow" =>  "hidden",
        "textOverflow" =>  "ellipsis",
    )
    
)

run_server(app, "0.0.0.0", debug=true)