worksheet.delete_cols() broken in releases >= 3.0.4
System: Ubuntu 20.04.5 LTS Python 3.8.10 LibreCalc 6.4.7.2 openpyxl 3.0.4 - 3.0.10
When attempting to delete columns using the following code, an error occurs:
wb = load_workbook(filename = /home/path/to/file.xlsx')
ws = wb['Data']
ws.delete_cols(idx=3, amount=3)
Here's the error:
Traceback (most recent call last):
File "/home/path/to/file.py", line 347, in <module>
ws.delete_cols(idx=3, amount=3)
File "/home/user/.local/lib/python3.8/site-packages/openpyxl/worksheet/worksheet.py", line 751, in delete_cols
self._move_cells(min_col=idx+amount, offset=-amount, row_or_col="column")
File "/home/user/.local/lib/python3.8/site-packages/openpyxl/worksheet/worksheet.py", line 705, in _move_cells
self._move_cell(row, column, row_offset, col_offset)
File "/home/user/.local/lib/python3.8/site-packages/openpyxl/worksheet/worksheet.py", line 798, in _move_cell
cell = self._get_cell(row, column)
File "/home/user/.local/lib/python3.8/site-packages/openpyxl/worksheet/worksheet.py", line 253, in _get_cell
raise ValueError("Row numbers must be between 1 and 1048576")
ValueError: Row numbers must be between 1 and 1048576
Reverting to openpyxl 3.0.3 resolves the problem. Note that this error occurs whether using the offset (amount) or not.