上司が進捗率を出せとうるさいから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")