1.问题
使用Python的openpyxl库操作Excel数据文件,数据格式是float类型,在处理过程中数据都很正常,结果保存之后数据格式变成了时间格式:date.time。
一直以为是Python代码写得有问题,找了很多资料都无法解决。
直到详细地看了每操作一次之后,数据格式的变化,发现在writer.save()保存之前数据格式都是保持float格式,保存之后直接变成date.time格式。
于是判断会不会是Excel本身的问题,直到找到一篇资料:excel表格保存之后再次打开全部变成日期格式?
那问题就解决了。
2.原因
按照资料中所说,找到Excel数据的开始 -> 单元格式一栏
在自定义一栏中,会存在一个"常规"的样式,一般这个会被选中,Excel被保存之后,会根据这个样式中的格式来保存。
再仔细一看,常规中的数字格式是这样的:
这不就是那个时间格式吗?不管我Python怎么操作,都是float,一旦保存了,就改成h:mm:ss的时间格式,也就是date.time。
3.解决方法
选择上图中的"格式"按钮,设置单元格格式,把选中数值再设置小数位就好了,不要选中时间格式。
成功解决:
4.最后的话
到此,终于解决了。
保存之后再打开,是漂亮的float格式。
感谢原作者。
当然,解决问题要一步一步排查究竟出在哪里,不要有固定思维,以为就是这里出了问题,换个角度,可能问题就很快被解决。