Yep, I've got a processing app that spits out all sorts of csv files based on data gathered from multiple sources.
Here's a little helper function I use def csv_export(records, column_names, fields, mode = 'dal'): """Export DAL result set, list of dicts or list of lists to CSV stream for returning to user Arguments: records = the data to be returned column_names (list)= the column names/headings for the first row in the CSV file Example ['First Name', 'Last Name', 'Email'] fields (list) = the names of the fields (as they appear in records) in the order they should be in the CSV. Example ['f_name', 'l_name', 'email'] or ['table_a.f_name', 'table_a.l_name', 'table_b.email'] If mode = 'list' and your records are in the correct order then fields may be None otherwise use [1,3,0] if you list is in a different order mode (string) = what type of data is in records? 'dal' (Default), 'dict' or 'list' 'dal' if records came from a regular dal query (Default) 'dict' if records are a list of dicts (for example using db.executesql() with as_dict = True) 'list' if records are a list of lists/tuples (for example using db.executesql() with as_dict = False) """ #create fake file object import cStringIO file = cStringIO.StringIO() #setup csv writer import csv csv_file = csv.writer(file) #write first row withspecified column headings/names csv_file.writerow(column_names) #which mode - dal or dict? if mode.lower() == 'dal' or mode.lower() == 'dict': for record in records: csv_file.writerow([record[field] for field in fields]) elif mode.lower() == 'list': if fields == None: csv_file.writerows(records) else: for record in records: csv_file.writerow([record[field] for field in fields]) return file Then in a controller you can have something like csv_stream = csv_export(processed_dataset, column_names, fields, mode = 'dict') response.headers['Content-Type']='application/vnd.ms-excel' response.headers['Content-Disposition']='attachment; filename=data_for_%s.csv' % date.today() return csv_stream.getvalue() which will cause browser to download the csv file with your chosen filename you could also turn around and save the datafile to the filesystem if you wanted. Hope this helps! Brian On Saturday, April 28, 2012 5:20:15 AM UTC-5, rahulserver wrote: > > I wish to generate a few reports in csv or txt or other file formats based > on some database data maintained through a crud application. Previously, it > was done through an asp.net application with vb as scripting language.But > as I explored the wonderful capabilities of web2py, I have become a fan of > this terrific framework. > Is it possible to do it in web2py. And if it is, then how and where should > the code be placed.In the view or model or controller? >