Como converter um python datetime.datetime para excel número de data de série
Preciso converter datas em números de série do Excel para um script de substituição de dados que estou escrevendo. Ao jogar com datas na minha pasta de trabalho OpenOffice Calc, pude deduzir que '1 de janeiro de 1899 00:00:00' é mapeado para o número zer
Eu escrevi a seguinte função para converter de um objeto de data e hora python em um número de série do Excel:
def excel_date(date1):
temp=dt.datetime.strptime('18990101', '%Y%m%d')
delta=date1-temp
total_seconds = delta.days * 86400 + delta.seconds
return total_seconds
No entanto, quando tento algumas datas de amostra, os números são diferentes daqueles que recebo quando formato a data como um número no Excel (também OpenOffice Calc). Por exemplo, o teste '20-03-2009' fornece 3478032000 em Python, enquanto o Excel renderiza o número de série como 39892.
O que há de errado com a fórmula acima?
* Nota: Estou usando o Python 2.6.3, portanto, não tenho acesso a datetime.total_seconds ()