2

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

csv文件截图(用notepad++打开) 关于如何使用 Azure 逻辑应用实现这一点的任何想法?谢谢!

4

2 回答 2

2

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

1.删​​除JS inline code action中最后几行代码,json直接return。

2.初始化两个变量sumtempItem

在此处输入图像描述

3.使用“For each”循环Resultfrom JS 内联代码动作,并在“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 Parallelism1。然后运行逻辑应用,即可得到求和结果。

于 2020-11-05T08:29:57.850 回答
1

如果要在 Azure 逻辑应用中将 csv 转换为 json,可以使用Execute JavaScript Codeaction 运行 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;

有关更多详细信息,请参阅此处此处

于 2020-11-04T13:12:41.203 回答