Hi.
I have noticed that a few people have been frustrated with changing the
colnames when exporting to cvs. I have arrived at a fairly compact
solution, but perhaps not the most efficient one for large cvs dumps.
For the record, and perhaps a bit of criticism, here it is :-)
controller
def foo():
if request.extension in ('csv','tsv'):
rows = db().select(db.vw_traffic_by_time.ALL,
orderby=db.vw_traffic_by_time.best_slot)
return dict(rows=rows)
....
view foo.tvs
{{
import cStringIO
stream=cStringIO.StringIO()
colnames=map(lambda c: c.split('.')[1], rows.colnames) # get rid of the
table part
seek = len("\t".join(rows.colnames)+"\r\n") # possibly faster than
readlines()[1:]?
rows.export_to_csv_file(stream, delimiter="\t",null=0)
stream.seek(seek)
response.headers['Content-Type']='application/vnd.ms-excel'
response.write("\t".join(colnames) + "\r\n", escape=False)
response.write(''.join(stream.readlines()), escape=False)
}}
--
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.