summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tablib/formats/_xls.py52
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