Saya perlu membuat Google sheet dengan 3 kolom (kolom A: Nama, kolom B: Gender dan kolom C: E-mail)

Maka saya perlu menambahkan skrip ke lembar untuk membuat formulir (Untuk beberapa alasan saya tidak dapat menggunakan formulir google) dengan tiga pertanyaan terkait yang baru saja kami tambahkan di lembar

Saya dapat melakukan kode form.html tetapi saya tidak begitu akrab dengan JavaScript untuk menghubungkan formulir ke lembar setelah dikirimkan

Saya pikir itu adalah sesuatu seperti ini:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}

function update spreadsheet {
  var sheet = "get active spreadsheet"
  ...

Saya tidak dapat menyelesaikan kode di atas, adakah yang bisa membantu saya dengan ini?

0
Mahmoud Bayoumi 7 Agustus 2019, 10:12

1 menjawab

Jawaban Terbaik

Anda dapat menerapkan Skrip Aplikasi sebagai Aplikasi Web [1]. Anda harus membuat file html [2] di mana Anda akan meletakkan formulir yang Anda inginkan. Di sini [3] dijelaskan dengan baik bagaimana menjalankan fungsi Apps Script dengan JavaScript di html. Terakhir, dalam fungsi Apps Script Anda dapat menggunakan kelas SpreadsheetApp untuk menyisipkan nilai yang Anda inginkan [4].

Ini akan menjadi contoh kode yang ditemukan pada dokumentasi:

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      // Prevent forms from submitting.
      function preventFormSubmit() {
        var forms = document.querySelectorAll('form');
        for (var i = 0; i < forms.length; i++) {
          forms[i].addEventListener('submit', function(event) {
            event.preventDefault();
          });
        }
      }
      window.addEventListener('load', preventFormSubmit);

      function handleFormSubmit(formObject) {
        google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
      }
      function updateUrl(url) {
        var div = document.getElementById('output');
        div.innerHTML = '<a href="' + url + '">Got it!</a>';
      }
    </script>
  </head>
  <body>
    <form id="myForm" onsubmit="handleFormSubmit(this)">
      <input name="myFile" type="file" />
      <input type="submit" value="Submit" />
    </form>
    <div id="output"></div>
 </body>
</html>

code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function processForm(formObject) {
  var formBlob = formObject.myFile;
  var driveFile = DriveApp.createFile(formBlob);
  return driveFile.getUrl();
}

[1] https://developers.google.com/apps-script/guides/web

[2] https://developers.google.com/apps-script/guides/ html/

[3] https://developers.google.com/apps-script/guides /html/komunikasi

[4] https://developers.google.com/apps-script /reference/spreadsheet/spreadsheet-app

1
Andres Duarte 8 Agustus 2019, 08:58