普通のシステムエンジニアの備忘録

きみひで と言います。個人勉強で触れた技術など備忘禄と時々日常を綴ります。

Python スケジュールのエクセルからWBSのフォーマットを吐き出す

スケジュール表をWBSにする必要が出てきた。

ただ、スケジュールがコロコロ変わるので、それに合わせてWBSもメンテする必要がある。

毎回WBSに書くのは面倒なので、WBSの形式にアウトプットするプログラムを組んだ!

 

 

import openpyxl
import pprint
import os


####書き出しエクセルの情報
#書き出すエクセルファイル
resultFileName = 'output.xlsx'
resultFile = openpyxl.load_workbook(resultFileName)
#書き出しカラム
out_planday_start   = "B"
out_planday_end     = "C"
out_taskName       = "A"
out_doneday_start  = "B"
out_doneday_end    = "C"
out_pic            = "D"

# シートを取得
sheetResult = resultFile['Sheet1']
resultGyo = 1

 

#計画日がセットされる列
plandayColumn = "A"
#タスク名がセットされる列
taskNameColumn = "B"
#実績日がセットされる列
danedayColumn = "C"
#担当者がセットされる列
picColumn = "D"

 

#Sheet名
SheetName = "Sheet1"

readFile = "test.xlsx"

for num in range(10):
    caseGyo = str(num + 1)
#    print(caseGyo)
    planday  =  plandayColumn  + caseGyo
    taskName =  taskNameColumn + caseGyo
    daneday  =  danedayColumn  + caseGyo
    pic      =  picColumn      + caseGyo

    wb = openpyxl.load_workbook(readFile)
    sheet = wb[SheetName]
    cell1 = sheet[planday]
    cell2 = sheet[taskName]
    cell3 = sheet[daneday]
    cell4 = sheet[pic]

    if (cell1.value == None):
       continue
    print(readFile, ",", cell1.value, "," , cell2.value,"," , cell3.value,"," , cell4.value)

 

    sheetResult[out_planday_start     + str(resultGyo)] = cell1.value
    sheetResult[out_planday_end       + str(resultGyo)] = cell1.value
    sheetResult[out_taskName          + str(resultGyo)] = cell2.value    
    sheetResult[out_pic               + str(resultGyo)] = cell4.value    
    
    if (cell1.value != None):
       sheetResult[out_doneday_start     + str(resultGyo+1)] = cell3.value
       sheetResult[out_doneday_end       + str(resultGyo+1)] = cell3.value
    
    resultGyo = resultGyo + 2

# 保存する
resultFile.save(resultFileName)