スケジュール表を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)