Skip to content

fix missing worksheet reference for ColumnDimension/RowDimension created in Worksheet.append

Bitbucket Importer requested to merge bitbucket/declined-pr-36 into branch/default

Created originally on Bitbucket by wolfmanx (Wolfgang Scherer)

Changesets for this Pull Request have not been imported, because it had been already declined on Bitbucket. Marked as closed by the import user.

Using column_dimensions/row_dimensions created by Worksheet.append fails:

#!python
from openpyxl import Workbook
from openpyxl.styles import Style

wb = Workbook()
ws = wb.active
ws.append([1, 2, 3])
col_dim = ws.column_dimensions['B']
try:
    col_dim.style = Style(number_format='0.00')
except:
    (t, e, tb) = sys.exc_info()
    import traceback
    print(''.join(traceback.format_tb(tb)).rstrip())
    print('{0}: {1}'.format(t.__name__, e))
    del(tb)

print('')

row_dim = ws.row_dimensions[1]
try:
    row_dim.style = Style(number_format='0.00')
except:
    (t, e, tb) = sys.exc_info()
    import traceback
    print(''.join(traceback.format_tb(tb)).rstrip())
    print('{0}: {1}'.format(t.__name__, e))
    del(tb)

result = """
  File "./bug-column-dimensions.py", line 16, in <module>
    col_dim.style = Style(number_format='0.00')
  File "/home/ws/project/3rd-party/openpyxl/openpyxl/openpyxl/worksheet/dimensions.py", line 52, in style
    self._style = self.worksheet.parent.shared_styles.add(style)
AttributeError: 'NoneType' object has no attribute 'parent'

  File "./bug-column-dimensions.py", line 26, in <module>
    row_dim.style = Style(number_format='0.00')
  File "/home/ws/project/3rd-party/openpyxl/openpyxl/openpyxl/worksheet/dimensions.py", line 52, in style
    self._style = self.worksheet.parent.shared_styles.add(style)
AttributeError: 'NoneType' object has no attribute 'parent'
"""

Merge request reports