首页 > 解决方案 > 在 TableColumn 内包装文本(Python/Bokeh:HTMLTemplateFormatter)

问题描述

我有一个带有两个 TableColumns 的 DataTable,如下所示:

日期 top20_vals
2020 年 9 月 (约翰,35 岁)、(乔治,65 岁)、(克里斯,98 岁)、(蒂姆,5 岁)、(杰克,32 岁)……
2020 年 10 月 (瑞秋,39 岁),(格雷格,25 岁​​),(杜克,83 岁),(鲍比,17 岁),(丹尼尔,8 岁)...
2020 年 11 月 (安德烈亚,42 岁),(蒂姆,15 岁),(道格,19 岁),(弗雷德,57 岁),(罗比,32 岁)...
2020 年 12 月 (Dom, 55), (Paul, 68), (Brian, 3), (Louis, 65), (Evelyn, 31)...

如您所见,top20_vals TableColumn 有我想包装的连续文本,但到目前为止还没有成功。到目前为止,以下是我的代码;我不知道 HTMLTemplateFormatter 的适当语法。有没有更熟悉 Python/Bokeh 语法的人可以帮助我?

template = """
             <style>
              div{word-wrap: normal;}
              </style>
              <div><%= value %></div>
           """

formatter = HTMLTemplateFormatter(template = template)
table_columns = [TableColumn(field = 'date', title = 'Date'), TableColumn(field = 'top20_vals', title = 'Top20 Names', formatter = formatter),]
t1 = DataTable(source = source, columns = table_columns, width = 600, height = 800)
show(vform(t1))

标签: pythonbokeh

解决方案


Bokeh 使用Slickgrid在 HTML 中呈现数据表。一些证据是在运行时附加到单元格的 css 样式名称:

slickgrid_318648 .slick-cell { 高度:25px; }

高度在行和单元格的样式中分配(不继承),因此单元格的内容不能轻易改变表格的布局(例如产生更高的行)。

这个堆栈溢出问题表明行高是 Slickgrid 布局的基本部分,不能轻易更改。


推荐阅读