summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Furrer <tuxtimo@gmail.com>2019-03-02 13:03:30 +0100
committerGitHub <noreply@github.com>2019-03-02 13:03:30 +0100
commitdc24fda41505d9961cd43939893a1cea3598ad18 (patch)
tree65722f2695bb273494b198815320aec15d57b40e
parent3ba8d529fc814833108f351fd8191e22fd0fc9e8 (diff)
parentf812c29275c7f47b08f8f1b962625545ec4e22ad (diff)
downloadtablib-dc24fda41505d9961cd43939893a1cea3598ad18.tar.gz
Merge pull request #333 from hudgeon/master
Updated xlsx format to remove reference to openpyxl's deprecated get_active_worksheet
-rw-r--r--docs/tutorial.rst8
-rw-r--r--tablib/core.py16
-rw-r--r--tablib/formats/_xlsx.py2
3 files changed, 23 insertions, 3 deletions
diff --git a/docs/tutorial.rst b/docs/tutorial.rst
index 23d2773..1fe11ee 100644
--- a/docs/tutorial.rst
+++ b/docs/tutorial.rst
@@ -289,6 +289,14 @@ Now that we have extra meta-data on our rows, we can easily filter our :class:`D
It's that simple. The original :class:`Dataset` is untouched.
+Open an Excel Workbook and read first sheet
+--------------------------------
+
+To open an Excel 2007 and later workbook with a single sheet (or a workbook with multiple sheets but you just want the first sheet), use the following:
+
+data = tablib.Dataset()
+data.xlsx = open('my_excel_file.xlsx', 'rb').read()
+print(data)
Excel Workbook With Multiple Sheets
------------------------------------
diff --git a/tablib/core.py b/tablib/core.py
index 6420ffa..809bb6e 100644
--- a/tablib/core.py
+++ b/tablib/core.py
@@ -527,9 +527,9 @@ class Dataset(object):
Import assumes (for now) that headers exist.
- .. admonition:: Binary Warning
+ .. admonition:: Binary Warning for Python 2
- :class:`Dataset.csv` uses \\r\\n line endings by default, so make
+ :class:`Dataset.csv` uses \\r\\n line endings by default so, in Python 2, make
sure to write in binary mode::
with open('output.csv', 'wb') as f:
@@ -537,6 +537,18 @@ class Dataset(object):
If you do not do this, and you export the file on Windows, your
CSV file will open in Excel with a blank line between each row.
+
+ .. admonition:: Line endings for Python 3
+
+ :class:`Dataset.csv` uses \\r\\n line endings by default so, in Python 3, make
+ sure to include newline='' otherwise you will get a blank line between each row
+ when you open the file in Excel::
+
+ with open('output.csv', 'w', newline='') as f:
+ f.write(data.csv)
+
+ If you do not do this, and you export the file on Windows, your
+ CSV file will open in Excel with a blank line between each row.
"""
pass
diff --git a/tablib/formats/_xlsx.py b/tablib/formats/_xlsx.py
index 1d29ba8..816fd37 100644
--- a/tablib/formats/_xlsx.py
+++ b/tablib/formats/_xlsx.py
@@ -71,7 +71,7 @@ def import_set(dset, in_stream, headers=True):
dset.wipe()
xls_book = openpyxl.reader.excel.load_workbook(BytesIO(in_stream))
- sheet = xls_book.get_active_sheet()
+ sheet = xls_book.active
dset.title = sheet.title