diff options
| author | Greg Thornton <gthornton@cjadvertising.com> | 2011-07-14 13:08:06 -0500 |
|---|---|---|
| committer | Greg Thornton <gthornton@cjadvertising.com> | 2011-07-14 13:08:06 -0500 |
| commit | eaa2b9b8ea778e7fbe1fe5c659fe1b267d52d4b1 (patch) | |
| tree | d3652fea9e91dbb26deee8382b2005c6792d6470 /tablib/formats | |
| parent | cd5aa4fc06d9af90b076c02a9f596bb84db1d09f (diff) | |
| download | tablib-eaa2b9b8ea778e7fbe1fe5c659fe1b267d52d4b1.tar.gz | |
Added XLS import support
Diffstat (limited to 'tablib/formats')
| -rw-r--r-- | tablib/formats/_xls.py | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/tablib/formats/_xls.py b/tablib/formats/_xls.py index 48dcc0b..1282a43 100644 --- a/tablib/formats/_xls.py +++ b/tablib/formats/_xls.py @@ -5,8 +5,8 @@ import sys -from tablib.compat import BytesIO, xlwt - +from tablib.compat import BytesIO, xlwt, xlrd +import tablib title = 'xls' extentions = ('xls',) @@ -16,6 +16,38 @@ wrap = xlwt.easyxf("alignment: wrap on") bold = xlwt.easyxf("font: bold on") +def import_set(dset, in_stream, headers=True): + """Returns dataset from XLS stream.""" + + dset.wipe() + + wb = xlrd.open_workbook(file_contents=in_stream) + ws = wb.sheet_by_index(0) + + for i in range(ws.nrows): + if (i == 0) and (headers): + dset.headers = ws.row_values(i) + else: + dset.append(ws.row_values(i)) + + +def import_book(dbook, in_stream, headers=True): + """Returns databook from XLS stream.""" + + dbook.wipe() + + wb = xlrd.open_workbook(file_contents=in_stream) + for ws in wb.sheets(): + data = tablib.Dataset() + data.title = ws.name + for i in range(ws.nrows): + if (i == 0) and (headers): + data.headers = ws.row_values(i) + else: + data.append(ws.row_values(i)) + dbook.add_sheet(data) + + def export_set(dataset): """Returns XLS representation of Dataset.""" |
