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.

Reply via email to