【问题标题】:Read excel cell values containing formulae with pandas使用熊猫读取包含公式的 excel 单元格值
【发布时间】:2020-08-04 14:54:53
【问题描述】:

我正在尝试使用 pandas 读取 excel,但由于它具有公式,因此在读取它时会返回 nan 值而不是单元格值。

df=pd.read_excel('Test.xlsx',sheet_name='Sheet1')

【问题讨论】:

  • Excel 本身有什么价值? Pandas 将返回存储在保存文件中的计算结果。如果保存的文件有错误并且有 #VALUE!,那么 pandas 将读取这些单元格的 NaN。
  • 公式将给我数值,没有错误,并在尝试使用 pandas 直接读取时返回 nan
  • 很奇怪,绝对不应该是这样的。如果单元格包含数字,它会读取值吗?
  • 是的,如果单元格没有公式,则给出正确的值,否则为 nan
  • @Ines 你使用的是什么版本的 pandas 我无法在0.23.3 中重现,但看起来你使用的是 pandas >= 0.21.0

标签: python pandas xlsx


【解决方案1】:

你试过openpyxl吗

from openpyxl import load_workbook
import pandas as pd
wb = load_workbook(filename = 'empty_book.xlsx')
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)

【讨论】:

  • 谢谢,但这给了我公式本身,我想要数字值
【解决方案2】:

@Naga kiran 如果您想查看值而不是可以添加的公式:

wb = load_workbook('empty_book.xlsx', data_only=True)

但是 openpyxl 从不计算公式 (https://openpyxl.readthedocs.io/en/latest/usage.html#using-formulae)

如果要查看公式结果,需要用Excel打开empty_book.xlsx并保存

【讨论】:

    猜你喜欢
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    相关资源
    最近更新 更多