On Tuesday, April 3, 2018 at 7:49:43 AM UTC-7, Alex Beskopilny wrote:
>
> 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 :)
>
>
>
It looks like that has to be done each time you have a new version of 
web2py.

/dps
 

> воскресенье, 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.

Reply via email to