How can i store excel file created using pyExcelerator as input for db.BlobProperty() ?
Actally what i need is that Using taskqueue program will create a excel file and store it in the datastore. And will send a link to the users to download the file. How do i do this ? Please help me
Datamodel:
class filestore(db.Model):
stock_file = db.BlobProperty()
Python code for storing the excel file in datastore
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()
After inserting new file, file size in 0kb why ?
If your goal is to create an Excel file and save it as a blob for later use you need to first save it as a StringIO object, not construct a response, as you are doing currently.
Here is a sample using xlwt (a fork of pyExcelerator):
This code will save the file as blobproperty() in datastore.