首页 > 其他分享 >Flask + xlwt 以流形式返回Excel文件

Flask + xlwt 以流形式返回Excel文件

时间:2023-08-18 11:13:48浏览次数:38  
标签:xlwt elink bio Flask pattern 以流 sheet const

flask

from io import BytesIO
import xlwt
from flask import send_file

@app.route('/')
def get_excel():
	bio = BytesIO()
	wb = xlwt.Workbook(encoding='utf8')
	sheet = wb.add_sheet('Sheet1',cell_overwrite_ok=True)
	# 写入表头	
	styleOK = xlwt.easyxf()
	pattern = xlwt.Pattern()  # 一个实例化的样式类
	pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # 固定的样式
	pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow']  # 背景颜色
	styleOK.pattern = pattern
	header = ['姓名','手机号']
	keys = ['name','phone_no']
	for i,val in enumerate(header):
		sheet.write(0, i, val,style=styleOK)
	# 写入数据
	for index, row in enumerate(res):
		for j, key in enumerate(keys):
    			sheet.write(index+1, j, str(row[key]))
	wb.save(bio)
	bio.seek(0)
	return send_file(bio, as_attachment=True, attachment_filename="ab.xlsx")

vue

fetch().then(res => {
	const blob = new Blob([res.data])
        const fileName = 'ab.xls'
        const elink = document.createElement('a')// 创建a标签
        elink.download = fileName// 为a标签添加download属性
        // a.download = fileName; //命名下载名称
        elink.style.display = 'none'
        elink.href = URL.createObjectURL(blob)
        document.body.appendChild(elink)
        elink.click()// 点击下载
        URL.revokeObjectURL(elink.href) // 释放URL 对象
        document.body.removeChild(elink)// 释放标签
})

标签:xlwt,elink,bio,Flask,pattern,以流,sheet,const
From: https://www.cnblogs.com/Nanyoujiamu/p/17639854.html

相关文章

  • flask的闪现
    1什么是闪现?假设出错了--->重定向到另一个地址--->把错误信息在另一个返回中看到Flask提供了一个功能方便向前端反馈消息,这个功能叫闪现。闪现的功能是基于session实现,所以我们在使用闪现的时候需要配置secret_key'将数据放入后,再取出,数据就消失了'2闪现的原理把一些数......
  • flask开发笔记
    1、调试参考:https://deepinout.com/flask/flask-questions/29_flask_how_to_debug_a_flask_app.html用pdb感觉还不错fromflaskimportFlaskimportpdbapp=Flask(__name__)[email protected]('/')defhello_world():name="Alice"......
  • flask请求响应
    1请求所有的web请求:都有请求对象和响应对象(java,go,python)每个web框架都会有一个请求框架都会有一个响应框架django:request(每个请求都有一个request)flask:request全局的但也是每个请求一个request新手三件套eg:fromflaskimportFlask,render_template,requestapp......
  • flask中的session
    1全局session-放值:session['key']=value-取值:session.get('key')-删除值:session.pop('username',None)2session的运行机制'''django1生成一个随机字符串2把数据保存到djagno-session表中3把随机字符串返回给前端--》当cookie存到浏览器中了--......
  • flask 处理大量请求
    Flask,一个用Python编写的轻量级Web应用框架,由于其简洁、易用、灵活,以及强大的扩展性,被广大开发者所喜爱。在实际应用中,我们经常会遇到需要处理大量请求的场景,比如高并发的Web服务器、API接口等。本文将介绍如何使用Flask来处理大量请求。使用多线程或多进程为了提高程序的并发性......
  • flask swagger ui文档生成
    最近一直在写api文档,不知道兄弟们有没有和我一样的感受,写文档比写代码还难受,写代码逻辑实现提交就完事了,写api文档那才叫难受,有些不合理的地方给反复来回改好几遍,不止代码要改,文档要改,注释要改,关键是文档还要让别人能看得懂为了解决这个痛点我想起了swaggerui文档,因为我......
  • flask的cbv
    eg:#cbv:基于类的视图MethodView继承自ViewfromflaskimportFlask,render_templatefromflask.viewsimportMethodViewapp=Flask(__name__,template_folder='templates')#3写个装饰器defauth(func):definner(*args,**kwargs):print('装饰器执......
  • 使用dockerfile 新创建一个flask工程的镜像
    项目工程格式如下   1.写一个flask功能app/app.pyfromflaskimportFlaskapp=Flask(__name__)@app.route("/index")defindex():return"HelloWorld!"if__name__=="__main__":app.run(host='0.0.0.0',port=8000)......
  • python语言学习-------------------xlwt模块
    xlwt模块是Python中一个用于管理Excel文件的模块,用以将数据以Excel表格的形式写入到Excel文件中。它具有操作方便、支持多种Excel文件格式等优点,因此,被广泛应用于数据处理、表格导出等方面。1.创建Excel文件使用xlwt模块创建并打开Excel文件:importxlwt#创建workbook对象w......
  • 利用Python Flask蓝图加自定义蓝图划分优雅的目录结构
    我们在用Flask开发网站的时候。经常看到有很多人把所有的路由函数放到了入口文件,这种做法是非常不可取的,如果我们的视图函数有几百个了都写到一个文件里肯定是不行的。还有在实现中我们都在比较大型项目里面我们可能有十几个甚至几十个这种不同模型。我们需要考虑把这些模型分文别......