python自動生成excel(xlwt庫)


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

# coding: utf-8

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(
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的位置開始寫入 return sio.getvalue() # 將生成文件特效返回到瀏覽器,其實文件已經保存到電腦的下載文件內了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM