PythonGAE、Django导出Excel的方法
2023-06-13 09:14:07 时间
但GAE、Django并没有直接将pyExcelerator导出为Excel的方法。我的思路是先用把数据导入到Workbook和Worksheet中,如果存为文件可以直接调用Workbook的save方法,但GAE不支持本地文件操作,即使图片也只能存放在DataStore中,但我们可以类似于返回图片的方法,直接将Excel的二进制流返回给浏览器。这就需要修改一下Workbook的代码,加入返回二进制流的方法,我给他取的名字是savestream,在savestream中再次调用CompoundDoc.XlsDoc的savestream方法,也是自己增加的。代码如下:
Workbook的savestream:
复制代码代码如下:
Workbook的savestream:
defsavestream(self):
importCompoundDoc
doc=CompoundDoc.XlsDoc()
returndoc.savestream(self.get_biff_data())
CompoundDoc.XlsDoc的savestream方法:
defsavestream(self,stream):
#1.Alignstreamon0x1000boundary(andthereforeonsectorboundary)
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)
returns
这样就可以返回Excel文件的二进制流了,下面就是如何在用户请求的时候将Excel文件返回,我借鉴了PHP的实现方法,代码如下:
classMain(webapp.RequestHandler):
defget(self):
self.sess=session.Session()
t_values["user_id"]=self.sess["userid"]
ifself.request.get("export")=="excel":
wb=Workbook()
ws=wb.add_sheet(u"统计报表")
#表头
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
效果可以参见我爱记账网的excel报表。
相关文章
- 将Excel转换为word_excel如何将横排变成竖排
- 导出的Excel名字乱码_恢复的excel文件乱码
- Django接口_小米电视spdif接口
- Django(2)python虚拟环境virtualenvwrapper
- Django(72)Django认证系统库–djoser「建议收藏」
- 图片链接如何在excel里转成图片_mdf文件怎么转成Excel
- django rest_framework Authentication
- 【Django】在大型项目中的django的性能模型字段primary_key
- Django REST Framework-常用的类视图
- Django简介详解编程语言
- 使用POI生成Excel文件,可以自动调整excel列宽详解编程语言
- 数据库快速实现Excel导入MySQL数据库(excel导入mysql)
- django 思维导图详解编程语言
- 利用mongodb快速导出Excel文件(mongodb导出excel)
- 文件Linux下如何打开Excel文件(linux打开excel)
- excel数据分析:SPSS、MySQL和Excel(spssmysql)
- MySQL数据导出Excel快速教程(mysql转excel)
- 极速提升业务效率:利用Excel快速导入Oracle数据库(excel数据导入oracle)
- 深入浅出Django与MSSQL整合(django-mssql)
- 学习如何使用Django连接MySQL数据库(django连接mysql)
- Oracle数据快速导出至Excel表格(oracle导出excel)
- Oracle将数据输出到Excel中(oracle写excel)
- js导出table数据到excel即导出为EXCEL文档的方法