Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过弹出窗口将仪表板数据表保存到excel或csv_Python_Plotly Dash - Fatal编程技术网

Python 通过弹出窗口将仪表板数据表保存到excel或csv

Python 通过弹出窗口将仪表板数据表保存到excel或csv,python,plotly-dash,Python,Plotly Dash,是否可以使用标准弹出窗口本地保存仪表板数据表?在哪里可以选择位置、文件名等 谢谢 我不确定是否可以使用默认的表导出机制(通过设置export\u format参数启用)实现所需的行为,但可以使用下载组件从仪表板扩展==0.0.28完成。这是后者的一个小例子 import dash import dash_html_components as html import pandas as pd from dash.dependencies import Output, Input, State f

是否可以使用标准弹出窗口本地保存仪表板数据表?在哪里可以选择位置、文件名等


谢谢

我不确定是否可以使用默认的表导出机制(通过设置
export\u format
参数启用)实现所需的行为,但可以使用
下载
组件从
仪表板扩展==0.0.28
完成。这是后者的一个小例子

import dash
import dash_html_components as html
import pandas as pd

from dash.dependencies import Output, Input, State
from dash_extensions import Download
from dash_table import DataTable
from dash_extensions.snippets import send_data_frame

dt = DataTable(columns=[{"id": v, "name": v} for v in range(5)], data=[{v: v * 10 for v in range(5)}], id="table")
app = dash.Dash(prevent_initial_callbacks=True)
app.layout = html.Div([dt, html.Button("Download", id="btn"), Download(id="download")])


@app.callback(Output("download", "data"), [Input("btn", "n_clicks")], [State("table", "data")])
def download_table(n_clicks, data):
    df = pd.DataFrame.from_records(data)
    return send_data_frame(df.to_csv, "some_data.csv", index=False)


if __name__ == "__main__":
    app.run_server()
编辑:根据Dash 1.20.0,下载的
组件已合并到
Dash核心组件中。因此,可以在不使用任何第三方库的情况下重写上述示例

import dash
import dash_html_components as html
import dash_core_components as dcc
import pandas as pd
from dash.dependencies import Output, Input, State
from dash_table import DataTable

dt = DataTable(columns=[{"id": v, "name": v} for v in range(5)], data=[{v: v * 10 for v in range(5)}], id="table")
app = dash.Dash(prevent_initial_callbacks=True)
app.layout = html.Div([dt, html.Button("Download", id="btn"), dcc.Download(id="download")])

@app.callback(Output("download", "data"), [Input("btn", "n_clicks")], [State("table", "data")])
def download_table(n_clicks, data):
    df = pd.DataFrame.from_records(data)
    return dcc.send_data_frame(df.to_csv, "some_data.csv", index=False)

if __name__ == "__main__":
    app.run_server()

您尝试过标准导出功能吗?我找不到有关它的信息,我发现dash文档很难导航。这里提到了export_列、export_头和export_格式,但我没有看到如何使用它的示例。您是否有显示此内容的链接?如果您添加export_format=“csv”,我相信应该会显示一个export按钮。好的,虽然它只是下载它,但这确实有效,我没有设置文件名或位置的选项,因此我将保留问题。谢谢,我刚试过,但是没有弹出窗口,它只是下载到下载文件夹。但是谢谢你在使用什么操作系统/浏览器?我也是-我看到了弹出窗口。可能您在浏览器设置中禁用了弹出窗口?要查看,请转到“chrome://settings/downloads并检查“下载前询问保存每个文件的位置”是否已打开。这是一个很棒的工具。然而,这并不是下载我的完整数据表(一个非常大的数据表),为什么?