Azure 逻辑应用计算 CSV 文件中列的总和

Azure Logic App calculate Total Sum of a column from a CSV file

我正在使用 Azure 逻辑应用从我的存储帐户中获取 blob 内容。 Blob 文件位于 .CSV 文件中。 CSV 文件由几列和多行组成。该文件基本上是一个发票文件,其中包含一个名为“PreTaxCost”的列。我需要计算 CSV 文件中“PreTaxCost”列中所有条目的总和,以获得 TOTAL BILLING COST。

关于如何使用 Azure 逻辑应用程序实现此目的的任何想法? 谢谢!

如果想在Azure logic app中将csv转json,可以使用Execute JavaScript Code action to 运行 js代码来实现。 JS代码如下

function csvToJson(csv){

  var lines=csv.split("\r\n");

  var result = [];

  var headers=lines[0].split(",");
  for(var i=0; i<headers.length; i++){
    //remove space
    headers[i]=headers[i].split(" ").join("")
   
  }
  for(var i=1;i<lines.length;i++){

      var obj = {};
      var currentline=lines[i].split(",");

      for(var j=0;j<headers.length;j++){
          obj[headers[j]] = currentline[j];
      }

      result.push(obj);

  }

  return JSON.stringify(result);;
}
var content = "<csv content>";

var json = JSON.parse(csvToJson(content));
var sum = 0;

json.forEach(item=>{
    sum = sum + parseInt(item.PreTaxCost);
});
return sum;

详情请参考here and here

根据我们的谈话和您的要求。由于在JS内联代码中加号无法解决问题,所以提供以下加号步骤供大家参考:

1.删除JS内联代码action最后几行代码,returnjson直接

2.初始化两个变量sumtempItem.

3. 使用“For each”从 JS 内联代码动作中循环 Result,并在“For each”循环中设置变量动作。

4.fx add(...)的表达式为add(variables('tempItem'), float(items('For_each')?['PreTaxCost']))。如果您的“For each”循环名为 For each 2,则表达式应为 add(variables('tempItem'), float(items('For_each_2')?['PreTaxCost'])).

5.请不要忘记启用Concurrency Control,并将Degree of Parallelism设置为1。然后运行逻辑应用,可以得到求和结果