From 1b78516e2cadec29d3e766ee56f05f7265533fff Mon Sep 17 00:00:00 2001 From: "G.Tjebbes" Date: Fri, 2 Jun 2023 09:54:20 +0200 Subject: [PATCH] Fix #6 : AttributeError: module 'openpyxl.writer.excel' has no attribute 'save_virtual_workbook' --- sqla_inspect/ascii.py | 2 +- sqla_inspect/excel.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sqla_inspect/ascii.py b/sqla_inspect/ascii.py index c00b5c1..b640d98 100644 --- a/sqla_inspect/ascii.py +++ b/sqla_inspect/ascii.py @@ -29,7 +29,7 @@ def force_utf8(value): :param str value: :rtype: bytes """ - return force_encoding(value, 'utf-8') + return force_encoding(value, "utf-8") def force_encoding(value, encoding): diff --git a/sqla_inspect/excel.py b/sqla_inspect/excel.py index 4715e4a..35b51f6 100644 --- a/sqla_inspect/excel.py +++ b/sqla_inspect/excel.py @@ -77,7 +77,13 @@ def save_book(self, f_buf=None): """ if f_buf is None: f_buf = io.BytesIO() - f_buf.write(openpyxl.writer.excel.save_virtual_workbook(self.book)) + + if hasattr(self.book, "save"): + self.book.save(f_buf) + # older versions of openpyxl + else: + f_buf.write(openpyxl.writer.excel.save_virtual_workbook(self.book)) + f_buf.seek(0) return f_buf