国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python GAE、Django導(dǎo)出Excel的方法

2020-02-23 04:41:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
但GAE、Django并沒(méi)有直接將pyExcelerator導(dǎo)出為Excel的方法。我的思路是先用把數(shù)據(jù)導(dǎo)入到Workbook和Worksheet中,如果存為文件可以直接調(diào)用Workbook的save方法,但GAE不支持本地文件操作,即使圖片也只能存放在DataStore中,但我們可以類似于返回圖片的方法,直接將Excel的二進(jìn)制流返回給瀏覽器。這就需要修改一下Workbook的代碼,加入返回二進(jìn)制流的方法,我給他取的名字是savestream,在savestream中再次調(diào)用CompoundDoc.XlsDoc的savestream方法,也是自己增加的。代碼如下:
Workbook的savestream:
代碼如下:
def savestream(self):
import CompoundDoc
doc = CompoundDoc.XlsDoc()
return doc.savestream(self.get_biff_data())

CompoundDoc.XlsDoc的savestream方法:
代碼如下:
def savestream(self, stream):
# 1. Align stream on 0x1000 boundary (and therefore on sector boundary)
padding = '/x00' * (0x1000 - (len(stream) % 0x1000))
self.book_stream_len = len(stream) + len(padding)
self.__build_directory()
self.__build_sat()
self.__build_header()
s = ""
s = s + str(self.header)
s = s + str(self.packed_MSAT_1st)
s = s + str(stream)
s = s + str(padding)
s = s + str(self.packed_MSAT_2nd)
s = s + str(self.packed_SAT)
s = s + str(self.dir_stream)
return s

這樣就可以返回Excel文件的二進(jìn)制流了,下面就是如何在用戶請(qǐng)求的時(shí)候?qū)xcel文件返回,我借鑒了PHP的實(shí)現(xiàn)方法,代碼如下:
代碼如下:
class Main(webapp.RequestHandler):
def get(self):
self.sess = session.Session()
t_values['user_id'] = self.sess['userid']
if self.request.get('export') == 'excel':
wb = Workbook()
ws = wb.add_sheet(u'統(tǒng)計(jì)報(bào)表')
#表頭
font0 = Font()
font0.bold = True
font0.height = 12*20;
styletitle = XFStyle()
styletitle.font = font0
ws.write(0, 0, u"日期:"+begintime.strftime('%Y-%m-%d') + " - " + endtime.strftime('%Y-%m-%d'), styletitle)
#返回Excel文件
self.response.headers['Content-Type'] = "application/vnd.ms-execl"
self.response.headers['Content-Disposition'] = str("attachment; filename=%s.xls"%t_values['user_id'])
self.response.headers['Pragma'] = "no-cache"
self.response.headers['Expires'] = "0"
self.response.out.write(wb.savestream())
return

效果可以參見(jiàn)我愛(ài)記賬網(wǎng)的excel報(bào)表。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南木林县| 义马市| 永嘉县| 肇源县| 尼勒克县| 梧州市| 库车县| 巴东县| 宁都县| 扶余县| 容城县| 黎城县| 泊头市| 贵溪市| 沭阳县| 错那县| 尚志市| 定兴县| 永定县| 奇台县| 绵阳市| 望谟县| 香格里拉县| 开鲁县| 乌兰察布市| 西安市| 沅陵县| 盐亭县| 沈阳市| 礼泉县| 开原市| 普宁市| 于都县| 德惠市| 漯河市| 六枝特区| 达日县| 宜宾县| 全州县| 颍上县| 灵山县|