我有一个Excel文件,其中包含会计数据以及某些单元格的文件使用公式。当我使用pandas read_excel读取文件中的值时,它将为具有公式的单元格返回nan
值。我也使用过openpyxl,但仍然遇到相同的问题。
对于具有公式的单元格,是否有任何方法可以读取值而不是公式。
我还附加了使用的xlsx文件。
https://drive.google.com/file/d/1aOTYwtKTrqyjF16vDizzzvMkUsvdgRe1/view?usp=sharing
谢谢...
答案 0 :(得分:2)
在使用excelsheet之前,请确保已设置excel文件的读写权限,如果它是只读文件,则更改为可读写。
import pandas as pd
your_data = pd.read_excel('yourfile.xlsx',sheet_name='your_sheet_name')
print(your_data) #checking
your_data.dropna(inplace=True)
your_data.rename(columns = {'Unnamed: 1':'Total'},inplace =True)
print(your_data['Total'].tolist()) #The column name where your formula is being calculated.
答案 1 :(得分:0)
我没有足够的声誉点可以发表评论,所以我必须把它作为答案,而并非如此。
对于您的示例文件,我没有任何问题。我正在使用python 3.8和Pandas 0.25.3。熊猫看得很好,可以找到数字。就是说,我阅读由公式计算得出的值的经验是,这取决于公式的复杂性。诸如Index,Match之类的易失函数将被读为nan,但是更简单的函数可以被读为数字。
这只是一种解决方法,而不是真正的解决方案,但是,如果您可以创建一个仅包含具有复杂公式的列的公式的新列,则可以读取该列的数据。
答案 2 :(得分:0)
在读取已附加到使用excel writer的excel文件时,我面临与您完全相同的问题。发生这种情况是因为excel文件上的链接未更新,因此公式不计算值。
2个对我有用的解决方案:
希望这会有所帮助。
编辑:这里的新用户,不知道拒绝/批准的工作方式,任何建设性的反馈将不胜感激。