簡體   English   中英

Google Sheets API變量

[英]Google Sheets API Variable

我對編碼有點陌生。 我必須要做一些將HTML表單中的數據提交到Google表格的事情。 我啟用了API,並遵循了所有步驟。 現在,我嘗試使用變量firstName,lastName,phoneNumber和email,以允許在單擊“提交”按鈕后提交輸入。 我沒有使用表格,但願意使用它。 再次說明一下:當您在輸入框中輸入文字時,點擊提交后,應將其附加到Google工作表中。 您需要使用端口8000的python本地服務器,並運行html文件以使其正常工作。

這里的問題是我無法在execute函數的“ values”部分中使用變量(firstName,lastName,email和phoneNumber)代替字符串。 每當我單擊執行按鈕時,它都會附加諸如“ Place_Holder”之類的字符串,但是當我輸入firstName時,它不會附加。 很抱歉提供冗長的解釋。 這是我第一次在這里發帖。

 <!DOCTYPE html> <html> <head> <title>googleapi</title> </head> <body> <h1>Information Form</h1> <div> <p>First Name:</p> <input type="text" id="firstNameInput"> </div> <div> <p>Last Name:</p> <input type="text" id="lastNameInput"> </div> <div> <p>Email:</p> <input type="text" id="emailInput"> </div> <div> <p>Phone Number:</p> <input type="number" id="phoneNumberInput"> </div> <button id="submitButton">Submit</button> <p id="submitMessage"></p> <script> document.getElementById("submitButton").addEventListener("click", displayMessage ); function displayMessage() { var firstName = document.getElementById('firstNameInput').value; var lastName = document.getElementById('lastNameInput').value; var email = document.getElementById('emailInput').value; var phoneNumber = document.getElementById('phoneNumberInput').value; document.getElementById("submitMessage").innerHTML = "Hello " + firstName + " " + lastName + " your information has been submitted"; } </script> </body> </html> <script src="https://apis.google.com/js/api.js"></script> <script> /** * Sample JavaScript code for sheets.spreadsheets.values.append * See instructions for running APIs Explorer code samples locally: * https://developers.google.com/explorer-help/guides/code_samples#javascript */ function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/spreadsheets"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/sheets/v4/rest") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } </script> <script> // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.sheets.spreadsheets.values.append({ "spreadsheetId": "*removed*", "range": "A1:D2", "includeValuesInResponse": "false", "insertDataOption": "INSERT_ROWS", "responseDateTimeRenderOption": "SERIAL_NUMBER", "valueInputOption": "USER_ENTERED", "resource": { "values": [ [ "Place_Holder", "Place_Holder", "Place_Holder", "Place_Holder" ] ] } }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: '*removed*'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button> <script src="main.js"></script> <link rel="stylesheet" type="text/css" href="styles.css"> 

`

我了解您的情況以及您想做的如下。

  • 在當前情況下,您可以使用Sheets API將字符串放入電子表格。
  • 您想使用Sheets API的append()firstName, lastName, email, and phoneNumber放入電子表格。

如果我的上述理解是正確的,那么該修改如何?

修改點:

我認為不能將變量放入Sheet的原因是,在運行execute()時未檢索到變量。 因此,當execute()運行時,它會進行修改以檢索變量。

修改后的腳本:

請進行如下修改。 運行此腳本時,請按瀏覽器上的執行按鈕。

來自:
 function execute() { return gapi.client.sheets.spreadsheets.values.append({ "spreadsheetId": "*removed*", "range": "A1:D2", "includeValuesInResponse": "false", "insertDataOption": "INSERT_ROWS", "responseDateTimeRenderOption": "SERIAL_NUMBER", "valueInputOption": "USER_ENTERED", "resource": { "values": [ [ "Place_Holder", "Place_Holder", "Place_Holder", "Place_Holder" ] ] } }) 
至 :
 function execute() { var firstName = document.getElementById('firstNameInput').value; var lastName = document.getElementById('lastNameInput').value; var email = document.getElementById('emailInput').value; var phoneNumber = document.getElementById('phoneNumberInput').value; return gapi.client.sheets.spreadsheets.values.append({ "spreadsheetId": "*removed*", "range": "A1:D2", "includeValuesInResponse": "false", "insertDataOption": "INSERT_ROWS", "responseDateTimeRenderOption": "SERIAL_NUMBER", "valueInputOption": "USER_ENTERED", "resource": { "values": [ [ firstName, lastName, email, phoneNumber ] ] } }) 

注意 :

  • 這是一個簡單的修改。 因此,請針對您的環境進行修改。

如果我誤解了您的問題,而這不是您想要的,對不起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM