在Python中执行Excel电子表格操作的程序?
假设我们有一个表示Excel电子表格的二维矩阵。我们必须找到具有所有单元格和公式计算的相同矩阵。Excel电子表格如下所示
B1 | 7 | 0 |
---|---|---|
3 | 5 | =A1 + A2 |
列名为(A,B,C …),行为(1,2,3 ….)每个单元格将包含值,对其他单元格的引用或用于数字或单元格引用之间的操作的Excel公式(例如“=A1 + 5”、“=A2 + B2”或“=2 +5”)
因此,如果输入为:
B1 | 7 | 0 |
---|---|---|
3 | 5 | =A1 + A2 |
然后输出将是:
7 | 7 | 0 |
---|---|---|
3 | 5 | 10 |
因为B1 = 7(第一行第二列),而“= A1 + A2”为7 + 3 = 10。
要解决此问题,我们将按以下步骤进行
- 定义一个函数resolve()。这将需要参数s
-
如果s是数字,则返回整数s
-
否则返回solve(getIdx(s))
-
定义一个函数getIdx()。这将需要参数s
-
返回一个列表,其中第一个值是s的从1到结尾的子字符串,作为整数,第二个值是s[0]的ASCII-“A”的ASCII
-
定义一个函数do()。这将需要参数a,b,op
-
如果op与“+”相同,则
- 返回a + b
- 如果op与“-”相同,则
- 返回a-b
- 如果op与“*”相同,则
- 返回a * b
- 如果op与“/”相同,则
- 返回a / b
- 定义一个函数solve()。这将需要参数i,j
-
如果matrix[i,j]是数字,则返回该值
-
否则:
- s:= matrix[i,j]
-
如果s[0]与“=”相同,则
- 对于s [从索引2到结尾的子字符串]中的每个c,执行以下操作
-
如果c是(+,-,/,*)中的任何操作符,则
- op:= c
-
退出循环
-
[a,b]:= s [从索引1到结尾的子字符串]的子字符串,并使用op拆分它
-
[aRes,bRes]:= [resolve(a),resolve(b)]
-
返回do(aRes,bRes,op)
-
否则,
- 返回solve(getIdx(s))
- 对于矩阵的行数范围从0到行数,执行以下操作
- 对于矩阵的列数范围从0到列数,执行以下操作
- matrix [i,j]:=(solve(i,j))作为字符串
- 对于矩阵的列数范围从0到列数,执行以下操作
- 返回matrix
让我们查看以下实现,以便更好地理解:
更多Python相关文章,请阅读:Python 教程