#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. Ага. Я ничего не нашел в поиске и не понял, как это сделать, поэтому я сам ответил. Воровать здесь нет смысла 😉