def create_sheet(raw_sheet, new_sheet, serv_id, poles):
for sheet in raw_sheet:
for time_i in range(0, sheet.ncols - 5):
# ??????
service_id = serv_id
trip_id = f'{sheet.name}_{service_id}_{time_i + 1}'
curr_sheet = new_sheet.add_sheet(trip_id)
# stop_name?????
stop_names = sheet.col_values(1)[6:]
# ???2????????????
if sheet.name == '130200':
del(stop_names[39])
elif sheet.name == '130210':
del(stop_names[38])
stop_names.insert(0, 'stop_name')
col = 0
for i, name in enumerate(stop_names):
curr_sheet.write(i, col, name)
# stop_id?????
stop_ids = [find_stop_id(normalize('NFKC', name)) for name in stop_names]
stop_ids[0] = ['stop_id']
col += 1
for i, stop_id in enumerate(stop_ids):
if len(stop_id) == 2 and is_noboribetsu_civic_center(sheet.name):
stop_id = stop_id[1]
else:
stop_id = stop_id[0]
curr_sheet.write(i, col, stop_id)
# pole_id?????
pole_ids = [get_pole_id(p) for p in sheet.col_values(2)[6:]]
if sheet.name == '130200':
del(pole_ids[39])
elif sheet.name == '130210':
del(pole_ids[38])
pole_ids.insert(0, 'pole_id')
col += 1
for i, pole_id in enumerate(pole_ids):
if (sheet.name == '109210' and i == 45) or (sheet.name == '110210' and i == 34):
# 2?????2???????
pole_id = 'C'
else:
pole_id = pole_id if pole_id is not '' else find_pole(poles, sheet.name, stop_ids[i][0], i)
curr_sheet.write(i, col, pole_id)
# departure_time?????
times = [s + ':00' for s in sheet.col_values(time_i + 5)[6:]]
if sheet.name == '130200':
del(times[39])
elif sheet.name == '130210':
del(times[38])
curr_sheet.write(0, 3, f'departure_time')
date_format = xlwt.XFStyle()
date_format.num_format_str = 'hh:mm:ss'
col += 1
for j, t in enumerate(times):
curr_sheet.write(j + 1, col, datetime.strptime(t, '%X').time(), date_format)
评论列表
文章目录