# 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() # 将生成檔案特效傳回到浏覽器,其實檔案已經儲存到電腦的下載下傳檔案内了。