From 02d4878c2ce95b8c2e14f6b35d17391fdf01d578 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Sun, 28 Jul 2019 20:18:16 +0200 Subject: [PATCH] Import data only (no formulas) from XLSX Close #266. Close #380. --- doorstop/core/importer.py | 2 +- doorstop/core/tests/files/formula.xlsx | Bin 0 -> 6068 bytes doorstop/core/tests/test_importer.py | 33 +++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 doorstop/core/tests/files/formula.xlsx diff --git a/doorstop/core/importer.py b/doorstop/core/importer.py index 74db7cf1e..54757ceb0 100644 --- a/doorstop/core/importer.py +++ b/doorstop/core/importer.py @@ -189,7 +189,7 @@ def _file_xlsx(path, document, mapping=None): # Parse the file log.debug("reading rows in {}...".format(path)) - workbook = openpyxl.load_workbook(path) + workbook = openpyxl.load_workbook(path, data_only=True) worksheet = workbook.active index = 0 diff --git a/doorstop/core/tests/files/formula.xlsx b/doorstop/core/tests/files/formula.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..07b77e618edf1d9420dbfcd49e4bc748a520305e GIT binary patch literal 6068 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