summaryrefslogtreecommitdiff
path: root/tablib
diff options
context:
space:
mode:
authorKenneth Reitz <me@kennethreitz.com>2010-10-04 11:38:17 -0400
committerKenneth Reitz <me@kennethreitz.com>2010-10-04 11:38:17 -0400
commit8c92e878a3a83f2e7d0c6cf3a1fe4a2f1ef59dba (patch)
treeb0190237886fa215e188ca569177a58367aa48dd /tablib
parentda2b011358e49654eb911cb0c0a76b460ea9afa2 (diff)
downloadtablib-8c92e878a3a83f2e7d0c6cf3a1fe4a2f1ef59dba.tar.gz
Upgraded XLS abstraction layer.
Diffstat (limited to 'tablib')
-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