2016-07-02 13 views
0

複数のワークシートを持つ複数のワークブックのデータを解析するプログラムがあります。条件チェックワークシート範囲python

シート2〜9は曜日(日曜日)です。しかし、いくつかのシートは異なるシート範囲を有する。

シートの中には、2〜5(月〜金)のものがあります。他のものはすべて同じですが、一部のワークブックは合計10枚あり、他のブックは8枚しかありません。私のコードは、セル範囲の同じ解析を行います。

シート範囲(2,5)のブックを解析するためにコードを使用するにはどうすればよいですか?これは私がこれまで持っていたものです。

import glob 
import openpyxl 

path = 'C:/SomeFolder/*.xlsx' 
files = glob.glob(path) 
for file in files: 
wb = openpyxl.load_workbook(file, data_only=True) 
NameFile = file.rsplit('~', 2)[0] 
sheet = wb.get_sheet_by_name('Title') 
sheet2 = wb.get_sheet_by_name('TOTAL') 
Week = sheet.cell(row=1, column=1).value 
Date = sheet.cell(row=2, column=1).value 
Name = sheet.cell(row=4, column=2).value 
Title = sheet.cell(row=5, column=2).value 
Site = sheet.cell(row=6, column=2).value 
LocID = sheet.cell(row=7, column=2).value 
Total = sheet2.cell(row=26, column=2).value 
if wb.worksheets is range(2, 9): 
    for n in range(2, 9): 
     sheets = wb.worksheets[n] 
     Days = wb.sheetnames[n] 
     comment = sheets.cell(row=34, column=5).value 
     for i in range(2, 57): 
      From = sheets.cell(row=i, column=1).value 
      To = sheets.cell(row=i, column=2).value 
      Activity = sheets.cell(row=i, column=3).value 
      TimeSheet = {'Sender': NameFile, 'Week': Week, 'Date': Date, 'Name': Name, 'Title': Title, 'Site': Site, 'LocID': LocID, 
         'Days': Days, 'From': From, 'To': To, 'Activity': Activity, 'Week Total': Total, 'Comments': comment} 
else: 
    for n in range(2, 5): 
     for n in range(2, 9): 
      sheets = wb.worksheets[n] 
      Days = wb.sheetnames[n] 
      comment = sheets.cell(row=34, column=5).value 
      for i in range(2, 57): 
       From = sheets.cell(row=i, column=1).value 
       To = sheets.cell(row=i, column=2).value 
       Activity = sheets.cell(row=i, column=3).value 
       TimeSheet = {'Sender': NameFile, 'Week': Week, 'Date': Date, 'Name': Name, 'Title': Title, 
          'Site': Site, 'LocID': LocID, 
          'Days': Days, 'From': From, 'To': To, 'Activity': Activity, 'Week Total': Total, 
          'Comments': comment} 
print(TimeSheet) 
+0

このコードを機能単位に分割することを強くお勧めします。現時点では、あなたがしようとしていることを理解することはほとんど不可能です。 –

答えて

0

次のようにして、実際にワークシートを反復処理することができます:私はif文とタイトルシートをスキップする方法

for sheet in wb: 
    if sheet.title=='Title': 
     #Skip the title page with continue or do something to it here 
     continue 
    else: 
     #for all pages other than the title page 
     for i in range(2, 57): 
      From = sheet.cell(i, column=1).value 
      To= sheet.cell(i, column=2).value 

注意を。この方法で他の特定のシートをスキップすることができます。