有没有办法使用Python openpyxl从excel读取持续时间类型字段?

时间:2019-09-10 16:11:43

标签: python openpyxl

我正在尝试从Excel文件读取工期字段,但是我不是datedelta类型,而是datetime类型。因此,当持续时间值超过24小时时,python openpyxl无法正确读取该字段。是否有使用Python openpyxl读取持续时间字段的正确方法?

import openpyxl

workbook = openpyxl.load_workbook('./files/file.xlsx')
worksheet = workbook.active

cell = worksheet.cell(row=2, column=9)
print(cell.value)

excel文件中的单元格(行= 2,列= 9)值是38:12:40,但打印输出:

1900-01-01 14:12:40

excel文件中的单元格格式代码-[HH]:MM:SS

1 个答案:

答案 0 :(得分:2)

我认为该解决方案将为您服务,也许您需要调整格式,但类型为timedelta

cell = worksheet.cell(row=1, column=1)
print(cell.value) #1900-01-01 14:12:40
s = cell.value-datetime.datetime(1899,12,30)
print(s) #2 days, 14:12:40
print(type(s)) #<class 'datetime.timedelta'>

问题是Excel具有自定义类型,当您放置该格式时,它将转换为从1900开始的那种格式。