最近需要使用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文件的更多相关文章

  1. Yii框架中使用PHPExcel导出Excel文件

    最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 ...

  2. Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

    问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下 ...

  3. 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件

    在之前的文章中,我们为大家分别详细介绍了在JavaScript.React中使用SpreadJS导入和导出Excel文件的方法,作为带给广大前端开发者的"三部曲",本文我们将为大家 ...

  4. [转]Java中导入、导出Excel

    原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...

  5. ExtJS Grid导出excel文件

    ExtJS Grid导出excel文件, 需下载POI:链接:http://pan.baidu.com/s/1i3lkPhF 密码:rqbg 1.将Grid表格数据连同表格列名传到后台 2.后台导出e ...

  6. PHP从数据库导出EXCEL文件

    参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...

  7. jxl导出Excel文件

    一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...

  8. PHPExcel导出excel文件

    今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...

  9. asp.net 导出excel文件

    之前做过winfrom程序的导出excel文件的功能,感觉非常简单.现在试着做asp.net中导出excel的功能,之前用的是Microsoft.Office.Interop.Excel这个对象来实现 ...

随机推荐

  1. IE兼容

    这个基本知识http://www.cnblogs.com/yoosou/archive/2012/07/27/2612443.html 参考: http://www.cnblogs.com/cocow ...

  2. mysql error 1130 hy000:Host 'localhost' is not allowed to connect to this mysql server 解决方案

    ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server D:\Wamp\mysql-\b ...

  3. javascript(js)创建对象的模式与继承的几种方式

    1.js创建对象的几种方式 工厂模式 为什么会产生工厂模式,原因是使用同一个接口创建很多对象,会产生大量的重复代码,为了解决这个问题,产生了工厂模式. function createPerson(na ...

  4. PHP字符串替换str_replace()函数4种用法详解

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )该函数返回一个字符串 ...

  5. python concurrent.futures

    python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算.这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型. IO密集型:读取文件,读取网络套接字频繁. 计算密集 ...

  6. 学习PID

    最近在想自己的文章有些是不是写的太难以理解了呢.........竟然好多人看了还是会直接问我很多问题....... 其实PID哈靠自己想像就能自己写出来自己的代码,也许是网上的讲的太过的高深什么积分微 ...

  7. (图文实例)用VB.net操作SQLite数据库

    转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/) 环境: Visual Studio 社区版 64位 Windows 7系统 新建的解决方案基于 ...

  8. IOS系统配置FFMEPG

    在FFMPEG的官网上可以找到标准的配置文档...http://ffmpeg.org/trac/ffmpeg/wiki/MacOSXCompilationGuide 在开始前确保安装了XCODE而且也 ...

  9. Linux下搭建svn服务端

    安装 使用yum安装非常简单: yum -y install subversion (压缩包安装比这麻烦的多) Tortoise本是window下客户端工具,但也可以建仓库,作为服务端.Linux只有 ...

  10. Spring 源码剖析IOC容器(一)概览

    目录 一.容器概述 二.核心类源码解读 三.模拟容器获取Bean ======================= 一.容器概述 spring IOC控制反转,又称为DI依赖注入:大体是先初始化bean ...