如何在Dash DataTable单元格字符串中使用HTML代码格式化单元格?
解决方法
要让Dash DataTable解析单元格内的HTML内容,最简便的方式是将对应列的presentation属性设置为'markdown'——Dash的Markdown渲染器支持直接解析内嵌的HTML标签。
修改后的完整代码如下:
from dash import Dash, dash_table import pandas as pd from collections import OrderedDict data = OrderedDict( [ ("Name", ["a", "b", "c"]), ("Region", [ "Toronto", "<b> First </b>", '<b style="display:inline">Second</b>',]), ] ) df = pd.DataFrame(data) app = Dash(__name__) app.layout = dash_table.DataTable( data=df.to_dict('records'), columns=[ {'id': c, 'name': c} if c != 'Region' else {'id': c, 'name': c, 'presentation': 'markdown'} for c in df.columns ] ) if __name__ == '__main__': app.run_server(debug=True)
原理说明
Dash DataTable默认将单元格内容作为纯文本渲染,因此HTML标签会直接以字符串形式显示。当把列的presentation参数设为'markdown'后,表格会调用内置的Markdown解析器处理内容,该解析器支持内嵌HTML标签,因此<b>这类格式标签会被正确渲染为对应的加粗样式。
这种方案无需额外维护格式化规则数据表,直接复用原始数据中带HTML格式的字符串即可,完全匹配你想要的轻量化使用场景。
内容的提问来源于stack exchange,提问作者a.t.
相关产品推荐
相关产品推荐

