问题描述

之前用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表格里,公式就能够正确读取引用并自动计算啦。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐