Python: укажите дату и время в столбцах xls. - PullRequest
0 голосов
/ 07 марта 2020

Я хотел бы экспортировать дату в столбцы Excel

У меня есть следующий код:

from xlsxwriter import Workbook
from pathlib import Path
from datetime import date
from datetime import time

#time
Second = 55
Hour = 10
Minute = 11
time_sum = time(Hour, Minute, Second)

#Date
day = 2
year = 2019
month = 11
Date_sum = date(year, month, day)
date = []
date.extend((Date_sum, time_sum))

#write in excel
workbook = Workbook('datetime.xlsx')
Report_Sheet = workbook.add_worksheet()
# Write the column headers.
Report_Sheet.write(0, 0, 'datetime')
# Write the column data.
Report_Sheet.write_column(1, 0, date)
workbook.close()

, но я получил это в Excel:

excel output

но я хотел бы иметь правильный формат (дату и время), чтобы значения были прямо правильными в Excel.

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Дата в Excel - это число в формате. В настоящее время у вас есть номер, но нет формата.

Для отображения даты / времени вы можете добавить следующий формат:

workbook = Workbook('datetime.xlsx')
Report_Sheet = workbook.add_worksheet()

# Make the first column wider for clarity.
Report_Sheet.set_column(0, 0, 20)

datetime_format = workbook.add_format({'num_format': 'dd/mm/yy hh:mm'})

# Write the column headers.
Report_Sheet.write(0, 0, 'datetime')
# Write the column data.
Report_Sheet.write_column(1, 0, date, datetime_format)
workbook.close()

Вывод:

enter image description here

Однако обычно вы хотите иметь отдельный формат для дат и времени, поэтому вам может понадобиться что-то вроде этого:

workbook = Workbook('datetime.xlsx')
Report_Sheet = workbook.add_worksheet()

# Make the first column wider for clarity.
Report_Sheet.set_column(0, 0, 20)

date_format = workbook.add_format({'num_format': 'dd/mm/yy'})
time_format = workbook.add_format({'num_format': 'hh:mm'})

# Write the column headers.
Report_Sheet.write(0, 0, 'datetime')
# Write the column data.
Report_Sheet.write(1, 0, Date_sum, date_format)
Report_Sheet.write(2, 0, time_sum, time_format)
workbook.close()

Вывод:

enter image description here

0 голосов
/ 07 марта 2020

Почему бы не использовать pandas и использовать функцию to_excel:

Например, с файлом CSV:

string,date,number
a string,2/5/11 9:16am,1.0
a string,3/5/11 10:44pm,2.0
a string,4/22/11 12:07pm,3.0
a string,4/22/11 12:10pm,4.0
a string,4/29/11 11:59am,1.0
a string,5/2/11 1:41pm,2.0
a string,5/2/11 2:02pm,3.0
a string,5/2/11 2:56pm,4.0
a string,5/2/11 3:00pm,5.0
a string,5/2/14 3:02pm,6.0
a string,5/2/14 3:18pm,7.0

читать следующим образом:

b=pd.read_csv('b.dat')
b['date']=pd.to_datetime(b['date'],format='%m/%d/%y %I:%M%p') #convert col to datetime

Вы можете сохранить в Excel следующим образом:

b.to_excel('yourfile.xls')

и сохранить формат даты (протестировано с использованием libre office cal c).

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