Javascript 将数据从API发送到google电子表格
我在一个项目中工作,该项目通过一个在线API(web服务)将一些数据转换为另一个表,因此计划从API中获取数据并将价格转换为另一个表,但我仍然一次又一次地遇到相同的错误,即没有按我需要的方式转换每一行。Javascript 将数据从API发送到google电子表格,javascript,google-apps-script,spreadsheet,google-sheets-api,Javascript,Google Apps Script,Spreadsheet,Google Sheets Api,我在一个项目中工作,该项目通过一个在线API(web服务)将一些数据转换为另一个表,因此计划从API中获取数据并将价格转换为另一个表,但我仍然一次又一次地遇到相同的错误,即没有按我需要的方式转换每一行。 屏幕截图: 代码: 函数发送按钮(){ //激活电子表格 var电子表格=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var cellCurrency=spreadsheet.getRange('E9').getValues()
屏幕截图:
代码:
函数发送按钮(){
//激活电子表格
var电子表格=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cellCurrency=spreadsheet.getRange('E9').getValues();
//从API中提取数据
var res=UrlFetchApp.fetch(“https://api.exchangeratesapi.io/latest?base=“+cellCurrency).getContentText();
//将数据解析为JSON
var json=json.parse(res);
//导出变量中的数据
var USD=json['rates']['USD'],
CAD=json['rates']['CAD'],
GBP=json['rates']['GBP'],
欧元=json['rates']['EUR'];
//一个数组只能获取4种货币
var CRN=[美元、加元、英镑、欧元];
var cellsPrice=spreadsheet.getRange('E5:E8').getValues();
//第二个货币表中的目标单元格
var cellsTraget1=电子表格.getRange('H3:K3');
var cellsTraget2=电子表格.getRange('H4:K4');
var cellsTraget3=电子表格.getRange('H5:K5');
var cellsTraget4=电子表格.getRange('H6:K6');
//转化过程
对于(var i=0;i请尝试以下脚本代码:
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);
};
如果使用Logger.log(CRN[3]),会发生什么;
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);
};
=mmult(E5:E8,{googlefinance("USDEUR"),googlefinance("USDCAD"),googlefinance("USDGBP")})