Python:从电子表格中解析公式

时间:2013-07-08 07:13:14

标签: python parsing spreadsheet formula

我想用python制作一种简单的电子表格。

我需要从字符串中解析一个公式。

我现在需要的所有操作都是:+ - * / ^()

公式将始终以'='开头。

输入示例:

  1. =4+8-6/2 这很简单:只需使用eig()
  2. 2。=4b+12*(2+5) 其中'4b'是电子表格中另一个单元格的链接(变量)。

    **可以将所有链接设为'b4'而不是'4b'

    该脚本将链接(变量)替换为相应的值。

    我无法实现的是让解析器'理解'变量如'4b'或'b4',其余的很简单

    你会建议什么?

    P.S。我是Python的新手。试过pyparsing但是根据我的需要使用或修改自定义示例很复杂。希望找到更简单的解决方案

2 个答案:

答案 0 :(得分:1)

对于基于Python的spreadsheet,ActiveState有一个非常简单的配方,可以满足您的大多数要求,我相信。它的class SpreadSheet是根据几个内部词典以及极少数相对较短的方法来定义的。

相关评论也非常有趣,并展示了如何扩展和尽量减少潜在的安全问题。我强烈建议你看一下。

我注意到的一个主要限制是没有依赖性检查,因此更新单元格不会自动更新可能依赖于它的任何内容,以及任何可能依赖于它们的内容等。

答案 1 :(得分:0)

用于创建匿名函数的Lambda表达式将是处理此问题的有效方法。我建议查看一下Peter Norvig的Udacity课程 - 计算机程序的设计。作为第2课的一部分,他介绍了一个非常类似于看密码学的场景。该课程是免费的,并且是自定进度的,因此您可以根据需要随意学习课程/课程:

https://www.udacity.com/course/cs212