diff options
Diffstat (limited to 'tablib/formats/_xls.py')
| -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.""" |
