Изменить формат даты для столбца openpyxl - PullRequest
0 голосов
/ 30 января 2020

В столбце U приведен список дат в формате 2020-01-21 09:50:10.959355-05:00. Я пытаюсь преобразовать все U в mm/dd/yy формат. Я получаю ошибку ValueError: Style Normal exists already. Я также изучал просто разделение клеток на расстояние между yy hh. Какой ответ когда-либо является самым простым. Вот мой код Пожалуйста, помогите

date_style = NamedStyle(number_format='dd/mm/yy')
for row in sheet1.iter_rows(min_col=21, max_col=21):
    for cell in row:
        cell.style = date_style

1 Ответ

0 голосов
/ 30 января 2020

Вот правильный способ использования стиля, как вы и просили:

from openpyxl.styles import NamedStyle
date_style = NamedStyle(name='date_style',number_format='dd/mm/yy')
wb.add_named_style(date_style)
for row in ws8.iter_rows(min_col=21, max_col=21):
    for cell in row:
        cell.style = date_style

Разделение пространства - еще один способ сделать это:

import datetime
for row in ws.iter_rows(min_col=21, max_col=21):
    for cell in row:
        cell.value = datetime.datetime.strptime(cell.value.split()[0], '%Y-%m-%d').strftime('%m/%d/%y')

Значение ячейки будет разделен на пустое пространство на два значения, одно с индексом 0, другое с индексом 1. Вы хотите датировать часть, поэтому вы выберете [0]. Затем, используя библиотеку datetime, вы можете переформатировать дату следующим образом: sh.

Ввод:

2020-01-21 09:50:10.959355-05:00

Вывод:

01/21/20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...