Chartsheet does not have _tables attribute
My workbook has a Chartsheet, and that seems to be causing trouble in a private function checking for duplicates since it has no _tables
attribute.
~/.local/share/virtualenvs/app-lp47FrbD/lib/python3.7/site-packages/openpyxl/workbook/workbook.py in _duplicate_name(self, name)
436 lwr = name.lower()
437 for sheet in self._sheets:
--> 438 tables = [key.lower() for key in sheet._tables.keys()]
439 if lwr in tables:
440 return True
AttributeError: 'Chartsheet' object has no attribute '_tables'
# HG changeset patch
# User George Adams <oss@geowa4.software>
# Date 1597169962 14400
# Tue Aug 11 14:19:22 2020 -0400
# Branch 3.0
# Node ID 64109d8e1765d73675b5c3e988aa097ebc87de56
# Parent e1024c1296f5250167050892431107b795349f3b
check if sheet has _tables attr before use
Chartsheets do not but regular Worksheets do.
diff -r e1024c1296f5 -r 64109d8e1765 openpyxl/workbook/workbook.py
--- a/openpyxl/workbook/workbook.py Wed Jun 24 19:05:38 2020 +0200
+++ b/openpyxl/workbook/workbook.py Tue Aug 11 14:19:22 2020 -0400
@@ -435,7 +435,9 @@
"""
lwr = name.lower()
for sheet in self._sheets:
- tables = [key.lower() for key in sheet._tables.keys()]
+ tables = []
+ if hasattr(sheet, '_tables'):
+ tables = [key.lower() for key in sheet._tables.keys()]
if lwr in tables:
return True