/usr/lib/python2.6/site-packages/tablib/formats
NameSizeModeActions
_csv.py11100644editdlrm
_csv.pyc16870644editdlrm
_html.py14210644editdlrm
_html.pyc20280644editdlrm
_json.py9910644editdlrm
_json.pyc18320644editdlrm
_ods.py30540644editdlrm
_ods.pyc31010644editdlrm
_tsv.py12990644editdlrm
_tsv.pyc17970644editdlrm
_xls.py32660644editdlrm
_xls.pyc38280644editdlrm
_xlsx.py42590644editdlrm
_xlsx.pyc43690644editdlrm
_yaml.py13520644editdlrm
_yaml.pyc22350644editdlrm
__init__.py3250644editdlrm
__init__.pyc6070644editdlrm
Edit: /usr/lib/python2.6/site-packages/tablib/formats/_ods.py (3054B)
# -*- coding: utf-8 -*- """ Tablib - ODF Support. """ import sys if sys.version_info[0] > 2: from io import BytesIO else: from cStringIO import StringIO as BytesIO from tablib.compat import opendocument, style, table, text, unicode title = 'ods' extensions = ('ods',) bold = style.Style(name="bold", family="paragraph") bold.addElement(style.TextProperties(fontweight="bold", fontweightasian="bold", fontweightcomplex="bold")) def export_set(dataset): """Returns ODF representation of Dataset.""" wb = opendocument.OpenDocumentSpreadsheet() wb.automaticstyles.addElement(bold) ws = table.Table(name=dataset.title if dataset.title else 'Tablib Dataset') wb.spreadsheet.addElement(ws) dset_sheet(dataset, ws) stream = BytesIO() wb.save(stream) return stream.getvalue() def export_book(databook): """Returns ODF representation of DataBook.""" wb = opendocument.OpenDocumentSpreadsheet() wb.automaticstyles.addElement(bold) for i, dset in enumerate(databook._datasets): ws = table.Table(name=dset.title if dset.title else 'Sheet%s' % (i)) wb.spreadsheet.addElement(ws) dset_sheet(dset, ws) stream = BytesIO() wb.save(stream) return stream.getvalue() def dset_sheet(dataset, ws): """Completes given worksheet from given Dataset.""" _package = dataset._package(dicts=False) for i, sep in enumerate(dataset._separators): _offset = i _package.insert((sep[0] + _offset), (sep[1],)) for i, row in enumerate(_package): row_number = i + 1 odf_row = table.TableRow(stylename=bold, defaultcellstylename='bold') for j, col in enumerate(row): try: col = unicode(col, errors='ignore') except TypeError: ## col is already unicode pass ws.addElement(table.TableColumn()) # bold headers if (row_number == 1) and dataset.headers: odf_row.setAttribute('stylename', bold) ws.addElement(odf_row) cell = table.TableCell() p = text.P() p.addElement(text.Span(text=col, stylename=bold)) cell.addElement(p) odf_row.addElement(cell) # wrap the rest else: try: if '\n' in col: ws.addElement(odf_row) cell = table.TableCell() cell.addElement(text.P(text=col)) odf_row.addElement(cell) else: ws.addElement(odf_row) cell = table.TableCell() cell.addElement(text.P(text=col)) odf_row.addElement(cell) except TypeError: ws.addElement(odf_row) cell = table.TableCell() cell.addElement(text.P(text=col)) odf_row.addElement(cell)