Openpyxl - копировать лист со слитыми ячейками - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь скопировать листы (в той же книге), которые объединили ячейки, и я получаю сообщение об ошибке.У меня довольно длинные шаблоны, которые я копирую, а затем заполняю для разных проектов.Мой код работает, если я объединяю все ячейки, но это портит все форматирование.Я мог бы распаковать ячейки, скопировать лист, а затем снова их объединить.Однако есть множество объединенных ячеек, и у меня есть несколько разных шаблонов, которые я должен использовать.Я не имею никакого контроля над шаблонами.Я использую openpyxl 2.5.4.

Вот мой код:

wb = openpyxl.load_workbook(temp)
wb.save(filename = "test.xlsx")
pg = openpyxl.load_workbook("test.xlsx")
ws = pg.copy_worksheet(pg["sheet1"])

Вот ошибка:

Traceback (most recent call last):

  File "<ipython-input-41-a49f299a8c1f>", line 1, in <module>
    ws = pg.copy_worksheet(pg["sheet1"])

  File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py", line 394, in copy_worksheet
    cp.copy_worksheet()

  File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\copier.py", line 43, in copy_worksheet
    self.target.merged_cells = copy(self.source.merged_cells)

  File "C:\ProgramData\Anaconda3\lib\copy.py", line 88, in copy
    return copier(x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\cell_range.py", line 456, in __copy__
    n.ranges.append(copy(r))

  File "C:\ProgramData\Anaconda3\lib\copy.py", line 88, in copy
    return copier(x)

  File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\cell_range.py", line 136, in __copy__
    title=self.title)

TypeError: __init__() got an unexpected keyword argument 'min_col'

Я видел другие вопросы о копировании стилейдля объединенных ячеек, но это не будет копировать лист вообще.Есть предложения?

Спасибо.

Брэндон

...