2016-07-06 7 views
-1

いくつかのExcelファイルをいくつか持っていて、他に8つのワークシートがあります。私のコードでは、すべてのファイルをループして2から9のシート範囲を選択します。しかし、シートこれらのブックで同じループまたはアクションを実行する代わりに、 "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.isliceにスライスSheets使用することができます。

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は言います。

関連する問題