下面代码使用web.py框架,其他框架都大同小异。

# coding: utf-

import web
import json
import datetime
import xlwt
import StringIO # 如果不在前端调用接口,如下web.py框架的urls和app、render可以省略
urls = ( # web框架的路由
'/index','Index',
'/home','Home',
)
app = web.aplication(urls, globals()) # 注册应用
render = web.template.render('template') # 模板,注意路径 #如果不在前端调用接口,如上web.py框架的urls和app、render可以省略 # 这个类,仅仅返回一个前端页面,页面里面的按钮使用ajax来请求下面其他接口,这个html内容我就不写了
class Index(object):
def GET(self):
return render.mubanmingzi({}) # 生成Excel文件
class Excel(object):
def GET(self):
web.header('Content-type', 'applicationvnd.ms-excel') # 请求头,返回指定内容
web.header('Transfer-Encoding', 'chunked')
namedate = str(datetime.date.today())
# 设定用户浏览器生成excel文件的名字
web.header('Content-Disposition', 'attachment:filname={0}'.format('Excel表' + namedate + 'xls')
# 以上都不重要,仅供参考,如下是使用python的第三方库xlwt来生成xecel文件
wb = xlwt.Workbook(encoding='utf-8') # 创建工作簿对象
ws = wb.add_sheet('sheet') # 要写入的sheet的名字,就是excel的工作台,不懂的可以去百度
bs = xlwt.Borders() # 创建边框对象,用来指定表格边框的样式(粗细,虚线实现,颜色等)
bs.left = xlwt.Borders.THIN # 左侧实线
bs.right = xlwt.Borders.THIN # 右侧实线
bs.top = xlwt.Borders.THIN # 上边实线
bs.bottom = xlwt.Boeders.THIN # 下边实线
bs.left_colour = ox40 # 颜色
style = xlwt.XFStyle() # 创建样式对象
style.borders = bs # 将设置好的bs样式给style对象 # 下面开始往创建好的excel对象里面写入数据
# 我们将地0行的前5个格合并居中,用来写入注意事项
# 前两个0表示从0行到0行这个范围,第3个0表示从第0列,4表示到第5列(行列索引都从0开始),最后一个值就是要写入的内容了)
ws.write_merge(,,,,'这是写入的内容')
# 设置表头
for i in range():
ws.write(, i, '标题{0}'.format(str(i))) # 5格,1表示第二行,i表示第二行的前5格,标题0-标题4没别为每行内容
# 下面类似,写入内容
row = # 第三行开始写内容数据
for i in range(): # 写入10行
ws.write(row, , '内容1', style) # 内容写入,边框样式生效
ws.write(row, , '内容2', style)
ws.write(row, , '内容3', style)
ws.write(row, , '内容4', style)
ws.write(row, , '内容5', style)
row += # 指定每列的宽度
ws.col().width = # 第0列
ws.col().width = # 第1列
ws.col().width = # 将数据流保存到本地磁盘
sio = StringIO.StringIO() # 创建数据流
web.save(sio) # 注意,这里保存的是数据流,不是文件名
sio.seek() # 光标,从0的位置开始写入
return sio.getvalue() # 将生成文件特效返回到浏览器,其实文件已经保存到电脑的下载文件内了。

python自动生成excel(xlwt库)的更多相关文章

  1. python自动生成excel报表

    1.将SQL语句查询的内容,直接写入到excel报表中,以下为全部脚本.要求:此版本必须运维在windows平台,并且安装了excel程序,excel版本不限. python版本为2.7 if b 判 ...

  2. python自动生成Docx(docxtpl库)

    python这个库很有用,可以格式化生成报告等. 其他内容请点此处,下面只写docxtpl的功能代码. # coding: utf-8 import web # 我们用的webpy框架 import ...

  3. 从用python自动生成.h的头文件集合和类声明集合到用python读写文件

    最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些 ...

  4. 利用python自动生成verilog模块例化模板

    一.前言 初入职场,一直忙着熟悉工作,就没什么时间更新博客.今天受“利奇马”的影响,只好宅在家中,写写技术文章.芯片设计规模日益庞大,编写脚本成了芯片开发人员必要的软技能.模块端口动不动就几十上百个, ...

  5. Python自动生成代码工具

    项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...

  6. 详解python操作生成excel表格,并且填充数据

    最近在研究python操作excel表格的问题,首先读取excel表格觉得平时用的多,不怎么有难度,就是pyhon生成excel表格的时候,平时不怎么用,所以重点研究了一下,现总结如下: 1.首先用到 ...

  7. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  8. python 自动生成C++代码 (代码生成器)

    python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...

  9. python自动生成bean类

    近期在学习python,一直在和java做对比,目前没有发现有通过字段自动生成getter setter方法,故此自己写了一个类,可以通过__init__方法传入类名和字段数组,再调用内部的方法,就可 ...

随机推荐

  1. Java数组(2):数组与泛型

    通常,数组与泛型不能很好的结合,你不能实例化具有参数化类型的数组.擦除会移除参数类型信息,而数组必须知道它们所持有的确切类型.但是我们可以参数化数组本身. import java.util.Array ...

  2. Java内部类(5):应用例

    例1-闭包(Closure) 闭包是一个可调用的对象(通过Callback),它记录了一些信息,这些信息来自于创建它的作用域 interface Incrementable { void increm ...

  3. Python 常用模块(1) -- collections模块,time模块,random模块,os模块,sys模块

    主要内容: 一. 模块的简单认识 二. collections模块 三. time时间模块 四. random模块 五. os模块 六. sys模块 一. 模块的简单认识 模块: 模块就是把装有特定功 ...

  4. loadrunner脚本因为没有token报错

    目录 场景 解决过程 解决方案 总结 场景 用loadrunner11录制脚本,处理后回放,加上检查点,报错找不到检查点对应的内容,去掉检查点,没有报错,但是打开页面没有该操作的痕迹.手动在页面上操作 ...

  5. Nmap使用手册参数详细说明

      nmap –iflist : 查看本地主机的接口信息和路由信息 -A :选项用于使用进攻性方式扫描 -T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火 ...

  6. XSS练习平台-XSS Challenges

    XSS Challenges http://xss-quiz.int21h.jp/   XSS基础不好的建议优先查看 关于XSS中使用到的html编码 js编码各种场景用法 http://su.xmd ...

  7. NIKKEI Programming Contest 2019-2 Task D. Shortest Path on a Line

    Observations ① 从 $1$ 到 $N$ 的最短路一定是不走回头路的.所谓走回头路是指从序号大的点走到序号小的点. 证明:首先,任意从 $1$ 到 $N$ 的路径的最后一步一定不是回头路. ...

  8. JAVA 中为什么String 是immutable的

    本文翻译自:http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ 这是一个很老但很流行的问题,这里有几个原因Stri ...

  9. 在ASP.NET Core 2.0中使用Facebook进行身份验证

    已经很久没有更新自己的技术博客了,自从上个月末来到天津之后把家安顿好,这个月月初开始找工作,由于以前是做.NET开发的,所以找的还是.NET工作,但是天津这边大多还是针对to B(企业)进行定制开发的 ...

  10. 用python实现自己的http服务器——多进程、多线程、协程、单进程非堵塞版、epoll版

    了解http协议 http请求头 GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Pragma: no-cache Cache-Co ...