【发布时间】:2021-08-11 08:17:56
【问题描述】:
我正在开发一个网络应用程序,管理员可以在其中添加居民姓名和一些关于他们的详细信息。因此,在那里添加数据后,我几乎没有用 appscript 编写公式,因此它会自动填充我的谷歌表格中的一些列,而无需手动执行。所以这里的任何人都可以帮忙,如果有一行数据添加到 B 列,它应该触发我在 appscript 中完成的编码。我附上了图片和我的代码以更好地解释自己。谢谢。
代码.gs
var url = "https://docs.google.com/spreadsheets/d/1bM8l6JefFsPrlJnTWf56wOhnuSjdIwg3hMbY1tN1Zp8/edit#gid=531487589";
function doPost(e) {
var rowData = [];
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("PaypalData");
rowData.push(new Date(e.parameter.payment_date));
rowData.push(e.parameter.item_number);
rowData.push(e.parameter.option_selection1);
rowData.push(e.parameter.payment_status);
rowData.push(e.parameter.payment_gross);
rowData.push(e.parameter.mc_currency);
rowData.push(e.parameter.payment_fee);
rowData.push(e.parameter.first_name);
rowData.push(e.parameter.last_name);
rowData.push(e.parameter.payer_email);
rowData.push(e.parameter.residence_country);
rowData.push(e.parameter.txn_id);
sheet.appendRow(rowData);
}
function getLast(range) {
var getResult = function(range) {
if (!((range.getNumRows() > 1 && range.getNumColumns() == 1) || (range.getNumRows() == 1 && range.getNumColumns() > 1))) {
throw new Error("Please input one row or one column.");
}
var v = Array.prototype.concat.apply([], range.getValues());
var f = Array.prototype.concat.apply([], range.getFormulas());
var i;
for (i = v.length - 1; i >= 0; i--) {
if (v[i] != "" || f[i] != "") break;
}
return i + 1;
};
if (Array.isArray(range)) {
return range.map(function(e) {
return getResult(e);
});
} else {
try {
range.getA1Notation();
} catch (e) {
throw new Error("Inputted value is not a range.");
}
return getResult(range);
}
}
function username(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("A2").setFormula('=IF(ISBLANK(B2:B),"",(B2:B &"."&substitute(substitute(lower(C2:C),"jalan","jln")," ","")))');
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 1, lr-1);
ss.getRange("A2").copyTo(fillDownRange);
}
function noOfPaid(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("F2").setFormula("=IF(ISBLANK(B2:B), ,(COUNTIF('Payment Configuration'!A:A,A2:A) + COUNTIF('Payment Configuration'!E:E,A2:A)))");
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 6, lr-1);
ss.getRange("F2").copyTo(fillDownRange);
}
function fullAddress(){
var ss = SpreadsheetApp.openByUrl(url);
var sheet = ss.getSheetByName("USERNAMES");
ss.getRange("I2").setFormula('=join(", ",{B2,UPPER(C2),"BANDAR PUTERI KLANG"})');
var range1 = sheet.getRange("B:B");
var lr = getLast(range1); // Retrieve last row of column 2.
var fillDownRange = sheet.getRange(2, 9, lr-1);
ss.getRange("I2").copyTo(fillDownRange);
}
【问题讨论】:
-
@WillMetcher 没有兄弟,因为我只想在修改“用户名”表中的 B 列时触发这三个功能兄弟。你能帮帮我吗?
-
@WillMetcher 兄弟我尝试了编码,但不知何故它对我来说显示了一个错误兄弟。你能帮我解决问题吗。 script.google.com/home/projects/… - 链接到 appscript
标签: javascript google-apps-script google-sheets