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;
根据我们的谈话和您的要求。由于在JS内联代码中加号无法解决问题,所以提供以下加号步骤供大家参考:
1.删除JS内联代码action最后几行代码,returnjson
直接
2.初始化两个变量sum
和tempItem
.
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
。然后运行逻辑应用,可以得到求和结果
我正在使用 Azure 逻辑应用从我的存储帐户中获取 blob 内容。 Blob 文件位于 .CSV 文件中。 CSV 文件由几列和多行组成。该文件基本上是一个发票文件,其中包含一个名为“PreTaxCost”的列。我需要计算 CSV 文件中“PreTaxCost”列中所有条目的总和,以获得 TOTAL BILLING COST。
如果想在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;
根据我们的谈话和您的要求。由于在JS内联代码中加号无法解决问题,所以提供以下加号步骤供大家参考:
1.删除JS内联代码action最后几行代码,returnjson
直接
2.初始化两个变量sum
和tempItem
.
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
。然后运行逻辑应用,可以得到求和结果