将日期时间写入Excel时未导出毫秒和微秒信息

时间:2019-03-26 16:33:37

标签: python excel datetime openpyxl

使用openpyxl将TDMS文件中的日期时间数据导出到Excel电子表格时,毫秒和微秒信息消失了。

在Python 3.7上使用openpyxl。从TDMS文件中提取的日期时间包含的时间包括微秒,例如,这里是打印包含以下日期时间对象之一的变量的值和样式的输出: 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

这会在几秒钟后丢失所有信息。谁能知道为什么会这样吗?

编辑: 我可以使用以下代码将其转换为字符串:

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

并以“常规”格式的单元格在Excel中获得以下输出: 2018/02/05 14:30:13:290399

我仍然希望能够将其导出为日期时间,而不必转换为字符串。

0 个答案:

没有答案