diff options
| author | Kenneth Reitz <me@kennethreitz.com> | 2010-10-04 11:38:17 -0400 |
|---|---|---|
| committer | Kenneth Reitz <me@kennethreitz.com> | 2010-10-04 11:38:17 -0400 |
| commit | 8c92e878a3a83f2e7d0c6cf3a1fe4a2f1ef59dba (patch) | |
| tree | b0190237886fa215e188ca569177a58367aa48dd /tablib | |
| parent | da2b011358e49654eb911cb0c0a76b460ea9afa2 (diff) | |
| download | tablib-8c92e878a3a83f2e7d0c6cf3a1fe4a2f1ef59dba.tar.gz | |
Upgraded XLS abstraction layer.
Diffstat (limited to 'tablib')
| -rw-r--r-- | tablib/formats/_xls.py | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/tablib/formats/_xls.py b/tablib/formats/_xls.py index 04cd9a2..0946af4 100644 --- a/tablib/formats/_xls.py +++ b/tablib/formats/_xls.py @@ -18,12 +18,37 @@ def export_set(dataset): wb = xlwt.Workbook(encoding='utf8') ws = wb.add_sheet(dataset.title if dataset.title else 'Tabbed Dataset') - _package = dataset._package(dicts=False) + dset_sheet(dataset, ws) + stream = cStringIO.StringIO() + wb.save(stream) + return stream.getvalue() + + +def export_book(databook): + """Returns XLS representation of DataBook.""" + + wb = xlwt.Workbook(encoding='utf8') + + for i, dset in enumerate(databook._datasets): + ws = wb.add_sheet(dset.title if dset.title else 'Sheet%s' % (i)) + + dset_sheet(dataset, ws) + + + stream = cStringIO.StringIO() + 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): for j, col in enumerate(row): @@ -39,25 +64,4 @@ def export_set(dataset): else: ws.write(i, j, col, wrap) - stream = cStringIO.StringIO() - wb.save(stream) - return stream.getvalue() - - -def export_book(databook): - """Returns XLS representation of DataBook.""" - - wb = xlwt.Workbook(encoding='utf8') - - for i, dset in enumerate(databook._datasets): - ws = wb.add_sheet(dset.title if dset.title else 'Sheet%s' % (i)) - - #for row in self._package(dicts=False): - for i, row in enumerate(dset._package(dicts=False)): - for j, col in enumerate(row): - ws.write(i, j, col, wrap) - - - stream = cStringIO.StringIO() - wb.save(stream) - return stream.getvalue()
\ No newline at end of file +
\ No newline at end of file |
