将 .xlsx 日期转换为正常日期
Converting a .xlsx date into a normal date
我一直在使用 xlrd3 通过 python 管理 .xlsx 电子表格。当我得到日期应该在的单元格的值时,它会给我 44295,它应该是 09/04/2021。
我明白这是因为 excel 存储日期的格式,所以我一直这样使用 xldate_as_datetime
函数:
lastsold = itemworksheet.cell_value(i,32)
lastsold_date = xlrd3.xldate_as_datetime(lastsold,0)
lastsold_object = lastsold_date.date()
lastsold_string = lastsold_object.isoformat()
(i 是来自 'for' 循环的可交互项)
当代码为(lastsold,0)
时,我收到错误
'<' not supported between instances of 'str' and 'int'
当代码为 (lastsold,1)
时,我得到了错误。
invalid literal for int() with base 10: ''
我该怎么做才能在 python 中获取格式为 09/04/2021 的日期?
我已经用下面的代码进行了测试,效果很好。请检查。
import xlrd
book = xlrd.open_workbook("test.xlsx")
first_sheet = book.sheet_by_index(0)
val = first_sheet.cell_value(0, 1)
lastsold_date = xlrd.xldate_as_datetime(val, 1)
obj = lastsold_date.date()
print(obj.isoformat())
我一直在使用 xlrd3 通过 python 管理 .xlsx 电子表格。当我得到日期应该在的单元格的值时,它会给我 44295,它应该是 09/04/2021。
我明白这是因为 excel 存储日期的格式,所以我一直这样使用 xldate_as_datetime
函数:
lastsold = itemworksheet.cell_value(i,32)
lastsold_date = xlrd3.xldate_as_datetime(lastsold,0)
lastsold_object = lastsold_date.date()
lastsold_string = lastsold_object.isoformat()
(i 是来自 'for' 循环的可交互项)
当代码为(lastsold,0)
时,我收到错误
'<' not supported between instances of 'str' and 'int'
当代码为 (lastsold,1)
时,我得到了错误。
invalid literal for int() with base 10: ''
我该怎么做才能在 python 中获取格式为 09/04/2021 的日期?
我已经用下面的代码进行了测试,效果很好。请检查。
import xlrd
book = xlrd.open_workbook("test.xlsx")
first_sheet = book.sheet_by_index(0)
val = first_sheet.cell_value(0, 1)
lastsold_date = xlrd.xldate_as_datetime(val, 1)
obj = lastsold_date.date()
print(obj.isoformat())