Как timedelta перевести в time в excel?

У меня есть таблица в котором есть время c типом timedelta введите сюда описание изображения

Когда я сохраняю эту таблицу как excel файл, у меня получается следующий результат: введите сюда описание изображения

А мне нужен результат такого типа: 75:12:12

Я после сохранения подключился к excel файлу и попытался с openpyxl поменят формат столбца, но я не могу поменять days на часы. Варианты которые попробовал:

for cell in sheet["E"]:
    cell.number_format = "h:mm:ss"

Результат в excel 1:20:12, а должно быть 25:20:12

for cell in sheet["E"]:
    cell.number_format = "d h:mm:ss"

Результат в excel 1 1:20:12, а должно быть 25:20:12


Ответы (2 шт):

Автор решения: gil9red

У timedelta есть метод total_seconds, а полученные секунды можно превратить в время

Пример:

import datetime as DT
import time

def seconds_to_str(seconds: int) -> str:
    hh, mm = divmod(seconds, 3600)
    mm, ss = divmod(mm, 60)
    return "%02d:%02d:%02d" % (hh, mm, ss)

t = DT.datetime.now()
time.sleep(2)
delta = DT.datetime.now() - t

secs = delta.total_seconds()

print(seconds_to_str(secs))
# 00:00:02
→ Ссылка
Автор решения: insolor

Формат ячейки для отображения времени без ограничения количества часов по модулю 24 выглядит как [HH]:MM:SS. Ниже скриншот с отображением времени в этом формате из Libre Office Calc:

Скриншот

→ Ссылка