我从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打开文件时,它仍然将其视为日期。
答案 0 :(得分:1)
Excel从应用于数字的数字格式中推断出日期和时间类型。您拥有的文件就是这种情况。将值设置为4.5不会改变这一点,您还需要将数字格式设置为" General"。