最近需要使用python去读写excel文件(.xlsx与.csv格式的)
然而我发现,若是一个单元格内是一个公式,则无法读出该公式计算后的值
使用openpyxl,不加data_only=True的话,会输出公式本身,加上data_only=True,则输出了一个空字符串
使用xlrd的话,也是输出了一个空字符串
请问这得怎么解决呢
当'xlsx’被生成并在Excel程序中打开并保存之后(这个过程Excel会把公式结果计算出来),该文件附带有两套值,一套是公式全都没有计算的(data_only=False(默认)),一套是公式计算了结果的(data_only=True)。(如果没有被Excel打开并保存,则只有一套值(data_only=False的那套,公式没有计算结果的)。
此时,以data_only=True或默认data_only=False打开会得到两种不同的结果,各自独立,即data_only=True状态下打开的,会发现公式结果为None(空值)或者一个计算好的常数,而不会看到它原本的公式是如何。而data_only=False则只会显示公式而已。因此,data_only=True状态下打开,如果最后用save()函数保存了,则原xlsx文件中,公式会被替换为常数结果或空值。而data_only=False状态下打开,最后用save()函数保存了的话,原xlsx文件也会只剩下data_only=False的那套值(即公式),另一套(data_only=True)的值会丢失,如想重新获得两套值,则仍旧需要用Excel程序打开该文件并保存。
请参考 链接https://jingyan.baidu.com/article/e2284b2b754ac3e2e7118d41.html
查看公式是否正确,有可能对应不同列了,可参照下面地址:
https://blog.csdn.net/oh5W6HinUg43JvRhhB/article/details/78948886
我的可以读取,换个读取函数,用我图片中的读取函数试试看
linux下可以用计算吗
打开excel文件的时候 加上 data__only=True, 然后 print value即可,如果结果是空,检查一下excel里的公式是否正确返回结果