You need one action to return the data stream and one to create a link:
def gimme():
poll_id = request.args(0,cast=int)
import xlsxwriter
import cStringIO
stream = cStringIO.StringIO()
...
workbook = xlsxwriter.Workbook(stream)
worksheet = workbook.add_worksheet(...)
...
stream.seek(0)
return response.stream(stream)
def create_excel_link(poll_id):
return A('link', _href = URL('gimme',args=poll_id))
On Tuesday, 4 November 2014 16:53:02 UTC-6, Spokes wrote:
>
> I'd like to create an excel file, and create a link for it within a page,
> without writing the file to disk. I've been trying to do something like this
> :
> def create_excel_link(poll_id):
> import xlsxwriter
> import cStringIO
>
> stream = cStringIO.StringIO()
>
> ...
>
> workbook = xlsxwriter.Workbook(stream)
> worksheet = workbook.add_worksheet(...)
>
> ...
>
> stream.seek(0)
>
> return A('link', _href = stream.read())
>
> The above idea works with images (i.e. with the IMG helper, although I've
> been advised that this is not the most efficient way of going about it),
> but I'm not sure how to make it work with excel files. Is it possible to
> modify this or do something comparable in order to generate an excel file
> without writing it to disk, and to present a link to it? Thank you.
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.