繁体   English   中英

Openpyxl load_workbook 索引错误仅与某个工作表有关

[英]Openpyxl load_workbook Index Error only with a certain worksheet

我正在尝试从 Excel 工作簿(启用宏)中的单个工作表中读取数据。 该工作簿附带了其他几个我不需要的工作表,其中一个给我带来了麻烦。 我可以毫无问题地在 Excel 中打开工作簿,但是将 load_workbook 与 openpyxl 一起使用会导致“IndexError:列表索引超出范围”。

我做了很多测试,发现只有当麻烦的工作表是工作簿中的最后一个工作表选项卡时才会触发 IndexError。 如果它不是工作簿中的最后一个工作表,我可以毫无问题地使用 load_workbook。 麻烦的工作表本身包含一个 Excel 打印区域。 如果我删除该打印区域,我可以毫无问题地使用 load_workbook。

我需要以编程方式从数百个具有相同问题的工作簿中读取数据,所以不幸的是我不能只删除 excel 中的坏工作表。

有没有人在较低级别熟悉 openpyxl 和/或 Excel 并知道这里发生了什么?

或者,是否有人知道无需使用 load_workbook 加载工作簿即可对工作簿进行一些预处理的方法。 这样我就可以在调用 load_workbook 之前删除坏的工作表。

谢谢

这就是我遇到的问题,我不知道如何在该级别回答您的问题,但是明智地加载工作簿,并且基于颜色的格式是我搜索的内容,这是解释的代码,稍后我将回到您的其余问题当我靠近我的电脑时。

# Combining dataFrames in excel
excelName = input("Label your excel file: ")
xlsxAUTO = '.xlsx'
excelAutoNamed = excelName + xlsxAUTO
writer = pd.ExcelWriter(excelAutoNamed,engine='xlsxwriter')

Wsheet = excelAutoNamed.worksheet[1]



describe_df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)

header = excelAutoNamed.add_format({'bold': True, 'bottom': 2, 'bg_color': '#F9DA04'})
Wsheet.set_row(0, None, header)





df.to_excel(writer,sheet_name='Validation',startrow=len(df.columns), startcol=0)
writer.save()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM