[英]Openpyxl - copy worksheet with merged cells
我正在嘗試復制已合並單元格的工作表(在同一工作簿中),但出現錯誤。 我有相當長的模板,我可以復制這些模板,然后為不同的項目填充這些模板。 如果我取消合並所有單元格,我的代碼就可以工作,但這會弄亂所有格式。 我可以取消合並單元格,復制工作表,然后重新合並它們。 但是,有大量合並的單元格,我必須使用幾個不同的模板。 我對模板沒有任何控制權。 我正在使用 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'
我已經看到有關復制合並單元格樣式的其他問題,但這根本不會復制工作表。 有什么建議?
謝謝。
布蘭登
你可以很容易地用猴子修補它:
from openpyxl.worksheet.merge import MergedCellRange
def clone(self):
return self.__class__(self.ws, self.coord)
MergedCellRange.__copy__ = clone
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.