При экспорте данных даты и времени из файла 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 вместо того, чтобы преобразовывать в строку.