带有公式的Python和CSV

问题描述

我有一个带公式的CSV文件,如下所示:

1;;2.74;0
=A1+C1;=A2;=C1

将公式转换为数字的最佳方法是,如下所示

1;;2.74;0
3.74;3.74;2.74

我知道的唯一方法是使用csv.reader作为列表列表来读取它,然后遍历每个元素。但是似乎必须有一个更简单的方法

P。 S.我有一个使用eval

提示

解决方法

CSV格式不支持公式。这是纯文本格式。 尽管某些流行的软件(例如MS Excel)将计算公式。我不知道允许这样做的解析器。但是,您可以尝试编写自己的解析器。能否成功取决于您希望在CSV中使用哪种高级公式。

,

需要动态解析包含Excel变量的字符串公式。在此处使用esproc在Excel外部执行类似Excel的公式。你可以尝试一下。有关更多详细信息,请参见http://c.raqsoft.com/article/1607073714932

A1=""
A2=""
A3=file("D:\data.csv").import(;,";")
A4=A3(1).array().(eval(char(64+#)/ "1="/ if(~==null,"null",~)))  // Process data in the first row
A5=A3(2).array().(eval(char(64+#)   / "2" /  if(~==null,"=null",~))) //Process the second row
A6=create(A,B,C,D).record([A1:D2])   //Get the result
A7=file("D:\result.csv").export(A6;";")