【问题标题】:Can Python recognize a formula from Excel cell?Python 可以识别 Excel 单元格中的公式吗?
【发布时间】:2013-12-04 09:21:40
【问题描述】:

Python 可以从 Excel 单元格中识别公式并忽略处理具有公式的单元格吗?

【问题讨论】:

  • 看到公式总是以等号开头,这应该不会太难。
  • 从视觉上看,数组公式以 { 开头,所以如果您采用 SBI 的方法,请小心。
  • 您是否使用Apache POI之类的库将excel文件读入Python的内存?这个库会告诉你单元格的数据类型(数字、字符串、方程式、错误)

标签: python excel formula


【解决方案1】:

是的,但不是重新发明轮子。我会使用其中一个libraries。 它们似乎提供了您需要的东西,并且还提供了教程。

【讨论】:

    【解决方案2】:

    根据answer provided by the author of xlrd in Jan 2011xlrd 目前不提供对 Excel 公式的访问。由于我目前正在尝试这样做,我倾向于相信情况仍然如此 - 我正在使用版本 0.9.2,根据github 是最新的。我刚刚注意到有xlrd1 on PyPI,但列出的两个限制是

    • 不支持 Microsoft Excel 2007/2010 格式的文件
    • 无法从输入文件中提取公式

    这也不会带来快乐。

    虽然我的搜索并不详尽(我很着急),但我认为在 Python 中访问公式的唯一可靠方法是通过 Mark Hammond's pywin32 访问底层 COM 对象。很明显,您将需要安装 Excel,因此这将限制此解决方案在 Windows 之外的可用性。我目前正在使用Python Excels website 来获得一些灵感。恐怕我还没有任何可靠或连贯的代码 - 我的答案主要是为了警告 xlrd 还不是通过 Python 获取 Excel 公式的答案。

    === 2014 年 3 月 18 日星期二 顺便说一句,由于我对 stackoverflow 还不太熟悉,并且目前缺乏评论或推荐的能力,所以我要补充一点,这个答案是专门添加的,因为之前对“Python 可以从 Excel 单元格中识别公式吗? " xlrd 的所有优点都没有。我发布未完全研究的答案的主要原因是警告其他用户误报,尽管 xlrd 有其优点,但在这种情况下。

    我目前从事的任务很多,其中一项涉及到这个问题。如果我找到一种“确实”而不是“可能”回答这个问题的方法,除了我给出的方法之外,我会修改我的答案。

    【讨论】:

    • 如果使用 Excel 2007 及更高版本,您可能希望查看 OpenPyXL。我不能 100% 确定,但这可能会提供公式支持。
    猜你喜欢
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    相关资源
    最近更新 更多