преобразуйте временную метку эпохи unix в форматированную дату и время Excel с помощью openpyxl

#python #datetime #openpyxl

#python #дата и время #openpyxl

Вопрос:

У меня есть набор данных, в котором один столбец представляет собой записанное время как эпоху UNIX. Я хотел бы изменить это с помощью openpyxl в определенный формат: в моем случае я хочу MM / DD MM: SS, где «14 июня 2020 года 03:05:07 PM» будет отображаться как 06/14 15:05 .

Ответ №1:

  • определите NamedStyle, который представляет желаемый формат вывода.
  • используйте iter_cols (любой другой итератор) для перебора ячеек, которые вы хотите отформатировать.
  • создайте объект python datetime из значения в этой ячейке
  • openpyxl имеет библиотеку для преобразования UNIX datetimes в Excel datetimes (Excel, конечно, использует какой-то нестандартный формат …)
  • примените желаемый стиль к каждой ячейке.
 # ws is an existing openpyxl Worksheet instance
custom_datetime = openpyxl.styles.NamedStyle(name='datetime', number_format='MM/DD HH:MM')
for col in ws.iter_cols(min_row=2, min_col=1, max_col=1): 
    for cell in col:
        dt = datetime.datetime.fromtimestamp(cell.value)
        cell.value = openpyxl.utils.datetime.to_excel(dt)
        cell.style = custom_datetime

 

Комментарии:

1. Пожалуйста, обновите свой вопрос, не публикуйте ответ.

2. @PedroLobito Я думаю, что это должен быть вопрос с самостоятельным ответом?

3. Ага. Я ничего не нашел в поиске и не понял, как это сделать, поэтому я сам ответил. Воровать здесь нет смысла 😉