簡體   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