问题描述
之前用Python的Openpyxl库写了一些自动化脚本,Review的时候发现了一个问题:
我往已有的模板里填写内容以后,打开Excel表格发现有些位置的公式是不会被自动计算的,必须双击一下公式引用的那个单元格才能让公式进行计算。
问题分析
1.检查了Excel中的自动计算公式的设置,并无问题(网上99%推荐的都是这类回答…);
2.尝试在写入单元格内容以后,用 W_sheets[XXX][XXX].number_format
去设置单元格的属性为数值,不过没有作用;
但是个人认为问题还是出在单元格内填写的内容格式问题上,虽然打开Excel以后它看起来像数值,但是有没有可能它实际在程序写入时不是作为数值写入的呢?
解决方案
在向指定单元格写入数据时,对原始数据进行数值转化,比如下面将值转为float格式。
W_sheets[Sheet_number+15][My_loction] = float(Read_list[i][T_name_loc])
这样保存出来的Excel表格里,公式就能够正确读取引用并自动计算啦。