【问题标题】:Access cell value and not formula of Excel cell using Pandas使用 Pandas 访问单元格值而不是 Excel 单元格的公式
【发布时间】:2021-09-14 14:26:39
【问题描述】:

我正在使用 Pandas 进行 excel 操作。

我正在创建超链接,它将把我从一个单元格带到另一个单元格。

创建超链接后我的单元格包含如下数据:

=HYPERLINK("#Sheet1!A20", "Dog") 

=HYPERLINK("#Sheet1!B20", "Cat") 

创建超链接后,我需要比较单元格的值。

这里例如我想检查Dog是否等于Cat。

但我无法访问单元格(狗、猫)的值

有没有一种方法可以访问单元格的值以使用 Pandas 进行比较?

【问题讨论】:

  • 该文件是否曾在 Excel 中打开过?否则,这些值将不存在。基于 Python 的库(Pandas、Openpyxl 等)没有 Excel 公式解析引擎的副本,并且读取原始值(公式)或保存在 Excel 中时的最后计算值。
  • 文件最初不会有这个超链接或任何公式。我正在从代码中创建这个超链接。创建超链接后,我正在尝试访问单元格的值。

标签: python excel pandas


【解决方案1】:

不,你不能做你想做的事。
任何计算都必须在 Python 中执行,而不是通过 Excel 工作表来尝试。

这是因为 Pandas 在幕后使用 Openpyxl 库来处理任何 Excel 内容,而 Openpyxl 和 Pandas 都没有 Excel 公式解析引擎的副本来生成任何 Excel 公式的输出。

正如documentation 中评论的那样:“data_only 控制带有公式的单元格是否具有公式(默认)或 Excel 上次读取工作表时存储的值。” [强调我的]

如果文件从未在 Excel 中打开过,则没有计算值可用,只能访问公式。

基本上这个问题是这个问题的副本:Read Excel cell value and not the formula computing it -openpyxl

如果您的目标是比较两个字段(“A20”和“B20”)的值,而您实际上并不关心公式,您只是在遵循“Excel-think”,那么这是一个非常不同的问题,您需要采取不同的方法;您要做的是比较您的原始源数据,无论是 Pandas 数据框、Excel 单元格等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2015-04-15
    相关资源
    最近更新 更多