読者です 読者をやめる 読者になる 読者になる

上司が進捗率を出せとうるさいからExcelのタブの色で総計と完了率を出すようにした

とあるシステムのデータ移行をやっているのだが、上司は全部で90近くあるテーブルの進捗率を知りたいらしい。
データ移行の大元はExcelで、ここに記載されたデータがSQLServerへ最終的には移行される。
Excelファイルは複数あり、その中に、各テーブル単位でシートが存在する。
終わったシートを色で管理しているが、上司はどうもすぐに数値を知りたいらしく、僕はそのたびに全部のExcelを開くのも馬鹿らしいので、管理好きな上司のためについカッとなってスクリプトを書いた。これで、いつ言われても1分以内に回答出来る。

import openpyxl as px
import glob,os

FileCount = 0
CompleteCount = 0

for r in glob.glob('*.xlsx'):
    fname = os.path.basename(r)

    wb = px.load_workbook(fname)

    print(fname)

    for s in wb.worksheets:
        FileCount += 1
        if s.sheet_properties.tabColor is not None:
            CompleteCount += 1
            print("\t"+s.title+":[Complete]")
        else:
            print("\t"+s.title)

print(str(CompleteCount) + "/" + str(FileCount) + " = " + str(round((CompleteCount/FileCount)*100,2)) + "% is completed")