openpyxl:将日期转换为数字

时间:2018-04-22 22:07:38

标签: python openpyxl

我从Google表格中下载了一个xlsx文件,并且由于人们写“4.5”时的语言环境,excel会将其解释为“5月4日”。

使用openpyxl读取文件时,我认识到datetime python类型。

但是当我这样做时:

cell.value = float(cell.value.day + cell.value.month / 10.0)

单元格的类型未更改为float,Excel仍然将其视为date,如下例所示:

>>> import openpyxl as xl
>>> n = xl.Workbook()
>>> s = n.get_active_sheet()
>>> s['A1'] = datetime(2018, 12, 1)
>>> s['A1'].value
datetime.datetime(2018, 12, 1, 0, 0)
>>> s['A1'].value = 2.5
>>> s['A1'].value
datetime.datetime(1900, 1, 2, 12, 0)

如何在单元格上设置值

编辑:我使用的是openpyxl版本2.4,添加行

时,2.5(s['A1'].value == 2.5不会发生此处描述的行为
>>> n.save('hello.xlsx')

使用Excel打开文件时,它仍然将其视为日期。

1 个答案:

答案 0 :(得分:1)

Excel从应用于数字的数字格式中推断出日期和时间类型。您拥有的文件就是这种情况。将值设置为4.5不会改变这一点,您还需要将数字格式设置为" General"。