Forum

Cara kirim form dari website ke google sheet

Dimulai oleh ꦲꦏ꧀ꦧꦫꦿꦶꦥ꦳ꦭ꧀ꦢꦾ · 0 Balasan
Diposting: 8 bulan lalu
Buat Google Sheet Baru

  • ... Pertama, pergi ke https://docs.google.com/spreadsheets dan Start a new spreadsheet dengan Blank template.
    Ubah nama menjadi Email Subscribers. Atau apapun terserah.
    Taruh headers dibawah ini di baris pertama



Buat Google App Script

  • ... Klik tools > Script Editor... akan muncul di tab baru
    Ubah nama menjadi Submit Form to Google Sheets. Pastikan tunggu sampai benar-benar tersimpan dan terupdate judulnya sebelum mengedit script.
    Sekarang, hapus function myFunction() {} blok di tab Code.gs.
    Paste script di bawah ini dan File > Save :


    var sheetName = 'Sheet1'
    var scriptProp = PropertiesService.getScriptProperties()

    function intialSetup () {
    var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
    scriptProp.setProperty('key', activeSpreadsheet.getId())
    }

    function doPost (e) {
    var lock = LockService.getScriptLock()
    lock.tryLock(10000)

    try {
    var doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
    var sheet = doc.getSheetByName(sheetName)

    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
    var nextRow = sheet.getLastRow() + 1

    var newRow = headers.map(function(header) {
    return header === 'timestamp' ? new Date() : e.parameter[header]
    })

    sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])

    return ContentService
    .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
    .setMimeType(ContentService.MimeType.JSON)
    }

    catch (e) {
    return ContentService
    .createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
    .setMimeType(ContentService.MimeType.JSON)
    }

    finally {
    lock.releaseLock()
    }
    }



Jalankan Setup Function

  • ... Setelah itu, pergi ke Run > Run Function > initialSetup untuk menjalankan function ini.
    Pada Authorization Required dialog, klik Review Permissions.
    Masuk ke atau pilih Akun Google anda untuk menyambungkan ke project ini.
    Anda pasti akan melihat dialog yang mengatakan Hi {Your Name}, Submit Form to Google Sheets wants to...
    Pilih Allow



Buat project trigger baru
Klik Edit > Current project’s triggers.
Di dialog klik No triggers set up. Click here to add one now..
Di dropdown pilih doPost
Atur event field ke From spreadsheet dan On form submit
Kemudian klik Save.

Publish project sebagai web app

  • ... Klik Publish > Deploy as web app…
    Atur Project Version ke New dan tarus initial version di input field dibawah.
    Atur Execute the app as: menjadi Me(your@address.com).
    Untuk Who has access to the app: pilih Anyone, even anonymous.
    Klik Deploy
    Pada popup, copy Current web app URL dari dialog.
    Dan klik Ok.



Input web app URL anda

<form name="submit-to-google-sheet">
<input name="email" type="email" placeholder="Email" required>
<button type="submit">Send</button>
</form>

<script>
const scriptURL = '<SCRIPT URL>'
const form = document.forms['submit-to-google-sheet']

form.addEventListener('submit', e => {
e.preventDefault()
fetch(scriptURL, { method: 'POST', body: new FormData(form)})
.then(response => console.log('Success!', response))
.catch(error => console.error('Error!', error.message))
})
</script>






Sumber: https://github.com/jamiewilson/form-to-google-sheets