Hi Massimo, No thank you, i use weasyprint for making PDFs, which is very easy with self made html views. This topic goes about using web2py to make excel sheets.
Maybe you have some ideas Massimo? Thank you! Op zondag 26 oktober 2014 16:34:58 UTC+1 schreef Stefan van den Eertwegh: > > Hi, > > I am writing for my invoice app a excel (xlsx) function to export a view > of al my invoices to excel. > Does anyone has some experience with xlsxwriter? Or some tips or > alternatives? > > Or maybe you advise me to use xlwt from python-excel.org? > > I am having trouble with the translatable string that i use in the excel > function. > It seems it returns the lazyT object in the string but xlsxwriter fails on > this. > > When i set T.lazy = False it has no change with the error.. > > Does anyone knows the problem? > > I have written the following code: > > # -*- coding: utf-8 -*- > @auth.requires_login() > def invoice(): > > import xlsxwriter > > # Create a workbook and add a worksheet. > workbook = xlsxwriter.Workbook('Expenses03.xlsx') > worksheet = workbook.add_worksheet() > > # Add a bold format to use to highlight cells. > bold = workbook.add_format({'bold': 1}) > eurosign = u"€" > # Add a number format for cells with money. > money_format = workbook.add_format({'num_format': eurosign + '#,##0'}) > > # Add an Excel date format. > date_format = workbook.add_format({'num_format': 'd mmmm yyyy'}) > > # Adjust the column width. > worksheet.set_column(1, 1, 30) > > # Write some data headers. > worksheet.write('A1', T('Invoice no.'), bold) > worksheet.write('B1', T('Debtor'), bold) > worksheet.write('C1', T('Invoice date'), bold) > worksheet.write('D1', T('Amount incl. VAT'), bold) > worksheet.write('E1', T('Type'), bold) > > # Some data we want to write to the worksheet. > data = [] > rows = db(db.invoice.company == u.company).select() > for record in rows: > if not record.debtor.company_name: > prefix = ' ' + record.debtor.prefix if record.debtor.prefix > else '' > debtor = record.debtor.first_name + prefix + ' ' + > record.debtor.last_name > else: > debtor = record.debtor.company_name > data.append([record.no, debtor, record.date, > record.amount_incl_VAT, record.type]) > > # Start from the first cell below the headers. > row = 1 > col = 0 > > for no, debtor, date, cost, rtype in data: > worksheet.write_string (row, col, no ) > worksheet.write_string (row, col + 1, debtor ) > worksheet.write_datetime(row, col + 2, date, date_format ) > worksheet.write_number (row, col + 3, int(cost), money_format) > worksheet.write_string (row, col + 4, rtype ) > row += 1 > > # # Write a total using a formula. > worksheet.write(row, 0, T('Total'), bold) > worksheet.write(row, 3, '=SUM(C2:C' + str(len(data)+1) + ')', > money_format) > > workbook.close() > > > -- 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/d/optout.