flask中使用xlsxwriter导出excel文件
最近需要使用flask导出xlsxwriter生成的excel文件,在文件比较小的情况下,可以直接导出。
首先,这里使用了StringIO,导出使用的模块
import xlsxwriter
import StringIO
设置好IO对象,把文件写到io流中,过程见注释
@app.route('/down_excel')
def down_excel():
sio = StringIO.StringIO()
workbook = xlsxwriter.Workbook(sio) # 直接写到io中
sheet = workbook.add_worksheet(u'sheet1')
style = workbook.add_format() # 设置风格
sheet.merge_range(0, 0, 0, 5, 'aaa') # 合并单元格
sheet.write('A2', u'内容', style)
for i in range(2, 10):
sheet.write(i, 2, 1)
sheet.write(11, 2, '=SUM(1:10)') # 增加公式
sheet.set_column(0, 5, 10) # 设置列宽
sheet.set_default_row(35) # 设置默认行高
workbook.close() # 需要关闭
sio.seek(0) # 找到流的起始位置
resp = make_response(sio.getvalue())
resp.headers["Content-Disposition"] = "attachment; filename={}.xlsx".format('name')
resp.headers['Content-Type'] = 'application/x-xlsx'
return resp
如果觉得生成的excel中,格式不好看,可以设置一些默认格式,我在这里写了一个函数,可以直接在添加format时使用,如下
def xlsx_style(**kwargs):
style = {
'bold': kwargs.get('bold', False), # 加粗
'font_name': kwargs.get('font_name', 'SimSun'), # 字体类型,默认宋体
'font_size': kwargs.get('font_size', 12), # 字体大小,默认12
'font_color': kwargs.get('font_color', '#000000'), # 字体颜色,黑色
'align': kwargs.get('align', 'center'), # 默认水平居中
'valign': kwargs.get('valign', 'vcenter'), # 默认垂直居中
'text_wrap': kwargs.get('text_wrap', True), # 默认自动换行
'top': kwargs.get('top', 1), # 上边界,线条宽度
'bottom': kwargs.get('bottom', 1), # 边界
'left': kwargs.get('left', 1), # 边界
'right': kwargs.get('right', 1), # 边界
'bg_color': kwargs.get('bg_color', '#FFFFFF'), # 背景颜色,白色
# 其他类型设置格式可以接着写
} return style
在这里使用
head_style = workbook.add_format(xlsx_style(bold=True, font_size=20))
body_style = workbook.add_format(xlsx_style(bg_color='#FFFF00'))
worksheet.write(2, 5, 'aaa', body_style)
flask中使用xlsxwriter导出excel文件的更多相关文章
- Yii框架中使用PHPExcel导出Excel文件
最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 ...
- Java web中不同浏览器间导出Excel文件名称乱码问题解决方案
问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下 ...
- 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件
在之前的文章中,我们为大家分别详细介绍了在JavaScript.React中使用SpreadJS导入和导出Excel文件的方法,作为带给广大前端开发者的"三部曲",本文我们将为大家 ...
- [转]Java中导入、导出Excel
原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...
- ExtJS Grid导出excel文件
ExtJS Grid导出excel文件, 需下载POI:链接:http://pan.baidu.com/s/1i3lkPhF 密码:rqbg 1.将Grid表格数据连同表格列名传到后台 2.后台导出e ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- jxl导出Excel文件
一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...
- PHPExcel导出excel文件
今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...
- asp.net 导出excel文件
之前做过winfrom程序的导出excel文件的功能,感觉非常简单.现在试着做asp.net中导出excel的功能,之前用的是Microsoft.Office.Interop.Excel这个对象来实现 ...
随机推荐
- http://codeforces.com/contest/610/problem/D
D. Vika and Segments time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- PL/SQL 三个小例子
/* SQL语句 员工集合:select to_char(hiredate,'yyyy') from emp --> 光标 --> 循环--> 退出条件:notfound 变量 co ...
- 使用siege对web接口进行post方式的压力测试
为了达到压力测试的效果,需要申请一台线上机器,并且安装压力测试的工具siege. 安装新版siege.资料说yum安装的版本2.70对于post方式支持的不好,验证后发现请求可以正常发过去,但是打开d ...
- sqlserver 使用脚本创建Sql Server代理作业
use master GO /* --开启sql server代理 sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_con ...
- 笨鸟先飞之ASP.NET MVC系列之过滤器(03动作过滤器过滤器)
概念介绍 动作过滤器应该是我们平常工作中需要用到最多的过滤器了,动作过滤器,主要在我们的动作方法执行前后执行. 如果我们需要创建动作过滤器需要实现IActionFilter接口. 我们看到该接口里有两 ...
- 在不用Promise的情况下如何控制异步请求?
如何更好的控制异步请求?相信大家一定首选Promise对象.确实,使用Promise控制异步请求确实非常方便,直接使用then()方法就可以实现当一个异步请求完成后再处理另一个请求或操作.同时,这样的 ...
- Django自定义过滤器中is_safe和need_autoescape两个参数的理解
自定义template过滤器的方法参考文档,不再赘述 is_safe 文档说明过滤的两种最终形态,其中一种是设置register.filter(is_safe=True),但是对is_safe的具体作 ...
- 数据库中有的字段为null时,反馈到页面上是什么也不显示?如何用一个【无】字来代替呢?
<asp:ListView ID="listViewCustomer" DataSourceID="ods_Customer" runat="s ...
- Xamarin.Forms 开发IOS、Android、UWP应用
C#语言特点,简单.快速.高效.本次我们通过C#以及Xaml来做移动开发. 1.开发工具visual studio 2015或visual studio 2017.当然visual studio 20 ...
- ES6-字符串的扩展-模板字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...