# coding: utf-8import 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):returnrender.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(0,0,0,4,'这是写入的内容')
# 设置表头for i in range(5):
ws.write(1, i, '标题{0}'.format(str(i))) # 5格,1表示第二行,i表示第二行的前5格,标题0-标题4没别为每行内容
# 下面类似,写入内容
row= 2# 第三行开始写内容数据for i in range(10): # 写入10行
ws.write(row,0, '内容1', style) # 内容写入,边框样式生效
ws.write(row,1, '内容2', style)
ws.write(row,2, '内容3', style)
ws.write(row,3, '内容4', style)
ws.write(row,4, '内容5', style)
row+= 1# 指定每列的宽度
ws.col(0).width = 3999# 第0列
ws.col(1).width = 3999# 第1列
ws.col(4).width = 6999# 将数据流保存到本地磁盘
sio=StringIO.StringIO() # 创建数据流
web.save(sio) # 注意,这里保存的是数据流,不是文件名
sio.seek(0) # 光标,从0的位置开始写入returnsio.getvalue() # 将生成文件特效返回到浏览器,其实文件已经保存到电脑的下载文件内了。