首先是代码部分
'''在路由的开头导入flask_excel,注意一定要用init_excel,否则会出现错误:ValueError: View function did not return a response'''
import flask_excel as excel
excel.init_excel(app)
# 备份数据库数据
@main.route("/sensor_hist_download/<int:item_id>/", methods=["GET"])
@login_req
@main_role
def exp_excel(item_id=None):
sensor_hist = db.session.query(
'''这里将要备份的记录输入,第一个字段是数据表名称,第二个字段是数据名称,第三个字段固定label'''
Sensor_hist.sensor_id.label('传感器号'),
Sensor_hist.sensor_online.label('传感器在线状态'),
Sensor_hist.sensor_data.label('传感器数据'),
Sensor_hist.sensor_thre_top.label('阈值上限'),
Sensor_hist.sensor_thre_bottom.label('阈值下限'),
Sensor_hist.sensor_type.label('传感器类型'),
Sensor_hist.item_id.label('工程号'),
Sensor_hist.device_id.label('解调仪号'),
Sensor_hist.channel_id.label('通道号')
).order_by(Sensor_hist.data_time)
query_sets = sensor_hist.all()
return excel.make_response_from_query_sets(
query_sets,
#这里写入的标签作为excel文件的列名
column_names=[
'传感器号',
'传感器在线状态',
'传感器数据',
'阈值上限',
'阈值下限',
'传感器类型',
'工程号',
'解调仪号',
'通道号'
],
# 这里设置文件格式和文件名
file_type='xlsx',
file_name='sensor_hist.xlsx'
)
因为要用xlsx/xls格式,需要pip安装这两个模块:
pip install pyexcel-xls
pip install pyexcel-xlsx
最终效果如下:
excel文件如下: