Информация в миллисекундах и микросекундах не экспортируется при записи даты и времени в Excel - PullRequest
0 голосов
/ 26 марта 2019

При экспорте данных даты и времени из файла TDMS в электронную таблицу Excel с использованием openpyxl информация о миллисекундах и микросекундах исчезает.

Использование openpyxl на Python 3.7. Дата и время, извлеченные из файла TDMS, содержат время, которое включает микросекунды, например, здесь выводятся значения и стиль переменной, содержащей один из этих объектов datetime: 2018-02-05 14: 30: 13.290399 + 00: 00

При экспорте в Excel часть после секунд исчезает: 2018-02-05 14: 30: 13

Я пытался использовать NamedStyle, но не смог найти способ определения миллисекунд или микросекунд с помощью этого инструмента.

from nptdms import TdmsFile
from openpyxl import Workbook

# Writing channel data to Excel spreadsheet 
wb = Workbook()
wfilename = 'channel_data.xlsx'
ws1 = wb.active
ws1.title = 'Full Data'

# a is a list of datetime objects pulled from a TDMS file
b = a[0]
print(b)
# output is:
# 2018-02-05 14:30:13.290399+00:00

t = type(b)
print(t)
# output is:
# <class 'datetime.datetime'>

ws1.cell(row=1, column=1).value=b
wfilepath = [somefilepath]
wb.save(wfilepath)

В полученном файле Excel ячейка содержит следующее: 2018-02-05 14: 30: 13

Это пропускает всю информацию через несколько секунд. Кто-нибудь может понять, почему это происходит?

EDIT: Мне удалось преобразовать в строку, используя следующий код:

w = b.strftime('%Y/%m/%d %H:%M:%S:%f')
print(w)

и получите следующий вывод в Excel в ячейке формата «Общие»: 2018/02/05 14: 30: 13: 290399

Я все еще хотел бы иметь возможность экспортировать это как datetime вместо того, чтобы преобразовывать в строку.

...