将电子表格值返回到javascript
Return spreadsheet values to javascript
我对谷歌脚本和javascript的问题很恼火。我有一个问题,从我的谷歌脚本发送数据范围值,由我的javascript函数处理。
这是我的密码。
code.gs摘录:
function getSheetData(ss,sh){
// Create sheet object
var ass = SpreadsheetApp.openById(ss);
SpreadsheetApp.setActiveSpreadsheet(ass);
var ash = SpreadsheetApp.openById(ss).getSheetByName(sh);
ash = SpreadsheetApp.getActive();
var result = ash.getDataRange().getValues();
Logger.log("getSheetData(ss,sh) result : "+result);
// return result after JSON strinfigy
return JSON.stringify(result);
}
JavaScript.html摘录:
function readTb(fn) {
var result = google.script.run.getSheetData(bdData, tbData);
console.dir('readTb result : ' + result);
fn(result);
}
function buildSelect(range) {
console.log('Range = ');
console.dir(range);
if (range.length > 0) {
buildOption('', 'Choose an order');
for (i = 0; i < range.length; i++) {
var row = range[i];
buildOption(row[0], row[0] + " ~ " + row[2] + " ~ " + row[5]
+ " ~ " + row[7]);
}
} else {
buildOption('', 'No order to display');
}
}
function buildOption(data) {
console.log(data);
}
/**
/* Retrieve orders and format to fill select numCommande input
/*
*/
function listCommandesPesee() {
console.log('Call for orders seeking');
// Read DB and retrieve data
// feed function variables with CONST
bdData = BDDATA_OLD;
tbData = TBCOMMANDES;
// Call readTb to retrieve data, then buildSelect to format result
var promise1 = new Promise(readTb);
promise1.then(buildSelect);
console.dir(promise1);
}
到目前为止,GS IDE中的Logger.log显示正确的数据:
[16-07-27 08:01:22:040 PDT]getSheetData(ss,sh):Ligne,ID,Produit,Date,Fournisseur,Numéro Camion,Silo,Cellule,Ilot,Poids coop,Poids net livré,N°analysis qualité,Cellule destination,Transport。。。
在页面加载时,会调用listCommandsPeee,它会调用readTb()。
但即使使用json-stringify,我在var结果(readTb函数)中仍然有一个未定义的值,因此buildSelect中的range没有任何长度属性。
JSON。Stringify在我测试时正在工作,在我添加promise和chain之前(我确实认为)
因为我陷入了困境。如果有任何帮助,我将不胜感激。
感谢
来自服务器的返回不能由使用google.script.run
的同一函数接收。
目前:
function readTb(fn) {
var result = google.script.run.getSheetData(bdData, tbData);
console.dir('Résultat de lecture des données : ' + result);
fn(result);
}
应为:
function readTb() {
var result = google.script.run
.withSuccessHandler(mySuccessFnc)
.getSheetData(bdData, tbData);
}
function mySuccessFnc(resultReturned) {
console.dir('Résultat de lecture des données : ' + resultReturned);
};
相关文章:
- Javascript返回值只在循环中返回一次
- ascii输入键通过firefox中的javascript返回0
- 从函数JavaScript返回不可变数组/对象
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何在Android中将Javascript返回值转换为String
- Javascript返回错误的Date值(NodeJS)
- JavaScript:返回对象的函数
- 使用javascript返回
- JavaScript返回奇数
- JavaScript:返回NaN(第2部分)
- 是我的第三方JavaScript返回html还是只是一个空对象
- 如何从javascript返回输出json
- Javascript:返回对象
- 当我将参数设置为对象时,JavaScript返回TypeError
- 获取页面宽度Javascript-返回PHP变量
- 使用纯JavaScript返回并嵌入图像,如php
- 为什么 javascript 返回对象位置 true 或 false
- JavaScript - 返回承诺和/或调用回调
- 将 javascript 返回值插入 html
- Javascript 返回 OR(||) 操作的字符串