[英]Send data from an API to google spreadsheet
I was working in a project which is converting some data to another table by an online API (web service), so the plan is fetching data from the API and converting the prices to another table, I still got the same error again and again which is not convert each row as the way I need.我在一个项目中工作,该项目通过在线 API(Web 服务)将一些数据转换为另一个表,因此计划从 API 获取数据并将价格转换为另一个表,但我仍然一次又一次地遇到相同的错误不是按照我需要的方式转换每一行。
SCREENSHOT : UI FOR THE SPREADSHEET屏幕截图:电子表格的 UI
CODE :代码 :
function Send_Button() {
//activate the spreadsheet
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cellCurrency = spreadsheet.getRange('E9').getValues();
//fatching the data from the API
var res = UrlFetchApp.fetch("https://api.exchangeratesapi.io/latest?base="+cellCurrency).getContentText();
//parsing data to JSON
var json = JSON.parse(res);
//exporting data in variables
var USD=json['rates']['USD'],
CAD=json['rates']['CAD'],
GBP=json['rates']['GBP'],
EUR=json['rates']['EUR'];
//an array to fetch just 4 currencies
var CRN = [USD,CAD,GBP,EUR];
var cellsPrice = spreadsheet.getRange('E5:E8').getValues();
//targeted cell in the second currencies table
var cellsTraget1 = spreadsheet.getRange('H3:K3');
var cellsTraget2 = spreadsheet.getRange('H4:K4');
var cellsTraget3 = spreadsheet.getRange('H5:K5');
var cellsTraget4 = spreadsheet.getRange('H6:K6');
//converting process
for(var i=0;i<4;i++)
{
cellsTraget1.setValue(cellsPrice[0]*CRN[0]);
cellsTraget2.setValue(cellsPrice[1]*CRN[1]);
cellsTraget3.setValue(cellsPrice[2]*CRN[2]);
cellsTraget4.setValue(cellsPrice[3]*CRN[3]);
}
}
Try the following script code:尝试以下脚本代码:
function Send_Button() {
//activate the spreadsheet
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cellCurrency = spreadsheet.getRange('E10').getValue();
//fatching the data from the API
var res = UrlFetchApp.fetch("https://api.exchangeratesapi.io/latest?base="+cellCurrency).getContentText();
//parsing data to JSON
var json = JSON.parse(res);
//exporting data in variables
var USD=json['rates']['USD'],
CAD=json['rates']['CAD'],
GBP=json['rates']['GBP'],
EUR=json['rates']['EUR'];
//an array to fetch just 4 currencies
var CRN = [USD,CAD,GBP,EUR];
var cellsPrice = spreadsheet.getRange('E5:E8').getValues();
//targeted cell in the second currencies table
var targetRange = spreadsheet.getRange('H3:K6');
var targetValues = targetRange.getValues();
//converting process
for(var i=0;i<cellsPrice.length;i++) {
for(var j=0;j<CRN.length;j++) {
targetValues[i][j] = cellsPrice[i][0]*CRN[j];
}
}
targetRange.setValues(targetValues);
};
You can also get the similar result using function GOOGLEFINANCE , try:
您也可以使用函数GOOGLEFINANCE获得类似的结果,请尝试:
=mmult(E5:E8,{googlefinance("USDEUR"),googlefinance("USDCAD"),googlefinance("USDGBP")})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.