Pada Helaian Google, saya mempunyai borang bar sisi yang membenarkan pengguna menambah maklumat dalam helaian lain. Saya perlu menyediakan ID untuk setiap baris supaya apabila pengguna menambah ID, ID baharu dijana.
Contoh: Borang sidebar mempunyai dua input: nombor standard (int) dan standard (teks). Apabila pengguna menambah input ini, saya ingin memasukkannya ke dalam lembaran kerja dengan 3 lajur: A = ID, B = Nombor Standard dan C = Standard. Untuk menjana ID, saya mencipta fungsi creeID() pada bahagian pelayan (fungsi ini menyemak ID terakhir dalam helaian dan menjana ID seterusnya, berfungsi dengan baik semasa menguji) dan apabila pengguna menambah baris (butang "ajouter") untuk mendapatkan tab dengan format ini
Saya fikir saya boleh menggunakan skrip google untuk menjalankan dengan .withSuccessHandler()
seperti yang dinyatakan di sini, saya mencuba beberapa perkara berdasarkan bantuan @Tanaike dan video ini.
一切似乎都工作正常,除了 google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()
null
这是我的 html 文件:
... Penunjuk
Preuve
Annuler function ajouter() { input const = document.querySelectorAll('#indic, #preuve'); let tab = [google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()]; // Récupération des valeurs untuk (input const input) { tab.push(input.value); } // Si tous les champs sont vides jika (tab.join('') == '') { alert('Le formulaire est vide !'); kembali; } // Vider les champs inputs.forEach(input => input.value = ''); // Envoi dans la feuille google.script.run.ajouterLigne(tab); }
和 JavaScript 代码:
function ajouterLigne(tab) { const PREUVES = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES"); console.log(tab) PREUVES.appendRow(tab); } fungsi creeID() { const SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES"); biarkan lastRow = SHEET.getLastRow(); biarkan lastIdRange = SHEET.getRange(lastRow, 1); biarkan lastId = lastIdRange.getValue(); biarkan newId; if (lastId == "ID") { newId = 1; } lain { newId = lastId + 1; }; kembali(newId) }
Bagaimana pula dengan
google.script.run.creeID()
不返回任何值。我认为这就是您当前问题的原因。从也许我应该像这里所说的那样使用.withSuccessHandler(),但我不知道如何使用。
,如下使用withSuccessHandler()
skrip anda?Dalam kes ini, ubah suai Javascript
ajouter()
seperti berikut.Skrip diubah suai:
tab
的值,并将tab
diambil dan nilai yang dimasukkan dilampirkan pada hamparan. 李>Rujukan: