AttributeError: 'workbook' object has no attribute 'max_row'

AttributeError: 'workbook' object has no attribute 'max_row'

我已经在此处提到了这个 post 但它没有任何回应。

我正在使用 public github 包 here 将所有格式从一个 excel 文件复制到另一个 excel 文件。

格式是指颜色、字体、冻结窗格等

style_sheet = load_workbook(filename = 'sty1.xlsx')
data_sheet = load_workbook(filename = 'dat1.xlsx')
copy_styles(style_sheet, data_sheet) # the error happens in this line 

copy_styles函数中的错误产生行如下

def copy_styles(style_sheet, data_sheet):
    max_matched_row = min(style_sheet.max_row, data_sheet.max_row)
    max_matched_col = min(style_sheet.max_column, data_sheet.max_column)

完整的 copy_styles 函数可以在此 github link here

中找到

我遇到的错误如下

AttributeError: 'workbook' object has no attribute 'max_row'

如果你想要一个示例文件来测试,可以在这个github问题中找到here

假设你想复制工作簿中第一个sheet的样式,你应该这样做:

copy_styles(style_sheet.sheet_by_index(0), data_sheet.sheet_by_index(0))

如果要复制所有作品sheet的样式(假设它们匹配),只需循环它们:

style_wb = open_workbook(filename = 'sty1.xlsx')
data_wb = open_workbook(filename = 'dat1.xlsx')

for sheet_from, sheet_to in zip(style_wb.sheets(), data_wb.sheets()):
    copy_styles(sheet_from, sheet_to)

我更改了第二个示例中的变量名称,以明确它们是 workbook,而不是 sheet