首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储使用pyExcelerator创建的excel文件作为db.BlobProperty()的输入

如何存储使用pyExcelerator创建的excel文件作为db.BlobProperty()的输入
EN

Stack Overflow用户
提问于 2011-08-31 16:18:26
回答 2查看 828关注 0票数 0

如何存储使用pyExcelerator创建的excel文件作为db.BlobProperty()的输入?

实际上,我需要的是使用taskqueue程序将创建一个excel文件,并将其存储在数据存储中。并且将向用户发送下载该文件的链接。我该怎么做呢?请帮帮我

数据模型:

代码语言:javascript
复制
class filestore(db.Model):
   stock_file = db.BlobProperty()

用于在数据存储中存储excel文件的Python代码

代码语言:javascript
复制
from pyExcelerator import *
class MainHandler(webapp.RequestHandler):
  def get(self):                  
     w = Workbook()
     ws = w.add_sheet('Hey, Dude')
     ws.write(0, 0, 'Part Number')        
     self.response.headers['Content-Type'] = 'application/ms-excel'
     self.response.headers['Content-Transfer-Encoding'] = 'Binary'
     self.response.headers['Content-disposition'] = 'attachment; filename="Test.xls"'

     temp_file = filestore()
     temp_file.stock_file = db.blob(wb.save(self.response.out)) // Storing 0kb file 
     temp_file.put()

为什么在插入新文件后,文件大小在0kb?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-01 00:41:02

如果您的目标是创建一个Excel文件并将其另存为blob以供以后使用,则需要首先将其另存为StringIO对象,而不是像目前所做的那样构造一个响应。

下面是一个使用xlwt (pyExcelerator的一个分支)的示例:

代码语言:javascript
复制
import xlwt

file_type = 'application/ms-excel'
file_name = 'sample.xls'

wbk = xlwt.Workbook()
sheet = wbk.add_sheet('Hey, Dude')
sheet.write(0, 0, 'Part Number')

file = StringIO.StringIO()
wbk.save(file)
file.seek(0)    

with files.open(file_name, 'a') as f:
  f.write('%s' % file.getvalue())

files.finalize(file_name)

blob_key = files.blobstore.get_blob_key(file_name)
票数 1
EN

Stack Overflow用户

发布于 2011-09-01 13:28:57

这段代码将文件保存为数据存储中的blobproperty()。

代码语言:javascript
复制
    import StringIO

    w = Workbook()
    ws = w.add_sheet('Hey, Dude')
    ws.write(0, 0, 'Part Number')

    buffer = StringIO.StringIO()
    w.save(buffer)
    contents = buffer.getvalue()
    mymodel = filestore()
    mymodel.stock_file = db.Blob(contents)
    mymodel.put()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7254317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档