【问题标题】:How does export work in plotly DataTable?导出如何在 plotly DataTable 中工作?
【发布时间】:2020-02-21 10:12:19
【问题描述】:

我正在使用 python 开发一个应用程序,该应用程序在 plotly DataTable 中显示数据(请参阅https://dash.plot.ly/datatable)。在多个地方,文档引用了应该包含在 DataTable 中的导出或复制/粘贴功能。但是我找不到任何文档,这个用户界面是如何工作的。 如果我有这样的数据表:

   dash_table.DataTable(
        id='rating-summary-table',
        data=df_summary.to_dict('records)'),
        columns=columns,
        style_cell_conditional=[
            {'if': dict(column_id='Name'), 'textAlign': 'left'},
        ],
    )

它显示在 Web UI 中,但如何调用复制/粘贴功能?它应该简单地复制剪贴板上显示的所有数据(带有标题)以粘贴到 Excel 电子表格中。 我正在使用 Windows 10。

【问题讨论】:

标签: python plotly plotly-dash plotly-python


【解决方案1】:

您可以在回调中使用组件 component_property derived_virtual_data,并编写如下内容:

df = pd.DataFrame(virtual_data)

例子

@app.callback(
    Output('saved-results', 'children'),
    [Input('save-button', 'n_clicks')],
    [State(component_id='rating-summary-table', component_property="derived_virtual_data")],
)
def save_results(n_clicks, virtual_data):
    if n_clicks is not None:
        df = pd.DataFrame(virtual_data)
        df.rename(columns={v: k for k, v in col_dict.items()}, inplace=True)
        filename = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + '_results.csv'
        saved_results.append(filename)
        df.to_csv(RESULTS_DIRECTORY + filename,
                  encoding='utf-8',
                  index=False,
                  sep=';')
        return files_list
    else:
        return [html.Li("Dataframe saved")]

【讨论】:

  • +1 目前从 DataTable 导出数据的最佳方式是创建自己的回调。这为您提供了更大的灵活性作为文件名称,进行进一步的后处理等。感谢您的回答。
猜你喜欢
  • 2020-03-22
  • 2011-06-10
  • 2016-05-30
  • 2020-09-19
  • 1970-01-01
  • 2020-04-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多