首页 > 解决方案 > 使用 SQLALCHEMY 和 Pandas 生成 Excel

问题描述

我正在尝试导出使用 SQLALCHEMY 进行的查询的结果。我可以下载该文件,但我收到的列没有标题名称,也不完整。在这里,我加入了我收到的图像: 在此处输入图像描述 但我的数据库具有这种格式: 在此处输入图像描述

@app.route('/excel', methods=['GET', 'POST'])
def exportexcel():
    data = Data.query.all()
    df = pd.DataFrame(list(data))
    filename = app.config['UPLOAD_FOLDER']+"/autos.xlsx"
    print("Filename: "+filename)

    writer = pd.ExcelWriter(filename)
    df.to_excel(writer, sheet_name='Registrados')
    writer.save()

    return send_file(filename)

有人知道我该怎么做才能在 excel 中检索我的数据库尽可能相似。

标签: pythonexcelpandasflasksqlalchemy

解决方案


def to_dict(row):
    if row is None:
        return None

    rtn_dict = dict()
    keys = row.__table__.columns.keys()
    for key in keys:
        rtn_dict[key] = getattr(row, key)
    return rtn_dict


@app.route('/excel', methods=['GET', 'POST'])
def exportexcel():
    data = Data.query.all()
    data_list = [to_dict(item) for item in data]
    df = pd.DataFrame(data_list)
    filename = app.config['UPLOAD_FOLDER']+"/autos.xlsx"
    print("Filename: "+filename)

    writer = pd.ExcelWriter(filename)
    df.to_excel(writer, sheet_name='Registrados')
    writer.save()

    return send_file(filename)

推荐阅读