2016-07-06 47 views
-1

我有幾個Excel文件,其中有10個工作表其他8個。在我的代碼中,我循環遍歷所有文件並選擇一個2到9的表單範圍。但是,由於我有一些8個工作簿我希望在這些工作簿中執行相同的循環或操作,而不是獲取「sheets = wb.worksheets [n] IndexError:列表索引超出範圍」。我可以使用elif來完成這個任務嗎?Elif聲明檢查表單範圍

import glob 
import openpyxl 

path = 'C:/ExcelFolder/*.xlsx' 
files = glob.glob(path) 
for file in files: 
    wb = openpyxl.load_workbook(file) 
    Sheet = wb.worksheets 
    if Sheet is range(2, 9): 
    for n in range(2, 9): 
     sheets = wb.worksheets[n] 
     #Do something 
    elif Sheet is range(2, 5): 
    for n in range(2, 5): 
     sheets = wb.worksheets[n] 
     #Do something 
+0

'try:foo();除了:通過髒,但你可以嘗試 – ihsancemil

回答

2

if...elif並非完全必要。

您可以使用itertools.isliceSheets

from itertools import islice 

for file in files: 
    wb = openpyxl.load_workbook(file) 
    Sheets = wb.worksheets 
    for sheet in islice(Sheets, 2, 9): 
     # do something with sheet 

如果Sheets不達標長度9,迭代停靠在Sheets的長度,說5