Hi!
exporter example
0 pip install xlwt
1 at end of gluon/sqlhtml.py
class ExporterXLS(ExportClass):
label = 'XLS'
file_ext = "xls"
content_type = ".xls"
# https://gist.github.com/brendano/22764
# https://groups.google.com/forum/#!topic/web2py/MR_8JzzP9o4
def __init__(self, rows):
ExportClass.__init__(self, rows)
def export(self):
import xlwt, cStringIO
if len(self.rows) == 0:
return 'empty rows-table'
rows_colnames= [name.translate(None,'"') for name in
self.rows.colnames ]
(table_name, _)= rows_colnames[0].split('.')
book = xlwt.Workbook()
sheet = book.add_sheet(table_name)
first_xls_row= 0
# rows.db.licence.fld2.represent(row.fld2,3)
def list2xls(row_num,line_list):
for col_num, value in enumerate(line_list):
if value is None:
value=''
elif isinstance(value, long):
value= str(value)
elif isinstance(value, str):
value= value.decode('utf8')
elif isinstance(value, datetime.date):
value= value.strftime('%d.%m.%Y')
elif isinstance(value, datetime.datetime):
value= value.strftime('%d.%m.%Y %H:%M:%S')
else:
value='####'
sheet.write(row_num, col_num, value)
fields=[]; labels=[]
for col in rows_colnames:
(t,f) = col.split('.')
fields.append(f)
labels.append( self.rows.db[t][f].label )
list2xls(first_xls_row, labels)
for r_num, row in enumerate (self.rows, first_xls_row + 1):
llist=[ row[f] for f in fields]
list2xls(r_num, llist)
s = cStringIO.StringIO()
book.save(s)
return s.getvalue()
2 gluon/sqlhtml.py
2517 exportManager = dict(
2518 axls=(ExporterXLS, 'XLS', T('Excell file')), # myfix
2519 csv_with_hidden_cols=(ExporterCSV_hidden, 'CSV (hidden
cols)', T('Comma-separated export including columns not shown; fields from
other tables are exported as raw values for faster export')),
.......
3 it's work for me :)
воскресенье, 1 апреля 2018 г., 10:08:30 UTC+3 пользователь Ray (a.k.a.
Iceberg) написал:
>
> Stumbled upon this blog post "Export in web2py's SQLFORM.grid
> <http://rootpy.com/Export-in-SQLFORM-grid/>" by Prasad Muley. It provides
> concrete example on how to customize an exporter TO REMOVE THE TABLE PREFIX
> IN CSV HEADER LINE. That is easier to digest than the standard web2py
> book's one-liner
> <http://www.web2py.com/books/default/chapter/29/07/forms-and-validators#SQLFORMgrid-signature>
>
> "(exporters) are all defined in gluon/sqlhtml.py. Take a look at those for
> creating your own exporter.".
>
> Hope that helps! Enjoy!
>
> Regards,
> Ray
>
>
>
--
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.