Get data from HTML page to Google spread sheet

前端 未结 1 1643
情话喂你
情话喂你 2021-01-28 01:26

I have four user input text fields in html created to user input data. I want to pass this four values into Google spreadsheet. This HTML is created using Google script. I am no

相关标签:
1条回答
  • 2021-01-28 02:08

    This is a simple html file communicating with Google Apps Script contained in a Spreadsheet. The html file and the Google Apps Script communicate with each other and I pass one array from the html file to the Google Script. Hope this helps.

    The Code.gs file:

    function doGet()
    {
      var html = HtmlService.createHtmlOutputFromFile('index');
      return html.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
    
    }
    
    function getData(a)
    {
      var ts = Utilities.formatDate(new Date(), "GMT-6", "M/d/yyyy' 'HH:mm:ss");
      a.splice(0,0,ts);
      var ss=SpreadsheetApp.openById('SPREADSHEETID')
      ss.getSheetByName('Form Responses 1').appendRow(a);
      return true;
    }
    
    function getURL()
    {
      var ss=SpreadsheetApp.openById('SPREADSHEETID');
      var sht=ss.getSheetByName('imgURLs');
      var rng=sht.getDataRange();
      var rngA=rng.getValues();
      var urlA=[];
      for(var i=1;i<rngA.length;i++)
      {
        urlA.push(rngA[i][0]);
      }
      return urlA;
    }
    

    The index.html file:

    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
      </head>
      <body>
      <div id="data">
        <br />Text 1<input name="t1" type="text" size="15" id="txt1" placeholder="Text 1" />
        <br />Text 2<input name="t2" type="text" size="15" id="txt2" placeholder="Text 2" />
        <br />Text 3<input name="t3" type="text" size="15" id="txt3" placeholder="Text 3" />
        <br />Text 4<input name="t4" type="text" size="15" id="txt4" placeholder="Text 4" />
        <br /><input type="radio" name="Type" value="Member" checked />Member
        <br /><input type="radio" name="Type" value="Guest" />Guest
        <br /><input type="radio" name="Type" value="Intruder" />Intruder
        <br /><input type="button" value="submit" id="btn1" />
        <br /><img id="img1" src="" alt="img1" width="300" />
      </div>
      <div id="resp" style="display:none;">
        <h1>Response</h1>
        <p>Your data has been received.</p>
      </div>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>
          $(function() {
            $('#btn1').click(validate);
            $('#txt4').val('');
            $('#txt3').val('');
            $('#txt2').val('');
            $('#txt1').val('')
            google.script.run
              .withSuccessHandler(setURL)
              .getURL();
          });
          function setURL(url)
          {
            $('#img1').attr('src',url[0]);
          }
          function setResponse(a)
          {
            if(a)
            {
              $('#data').css('display','none');
              $('#resp').css('display','block');
            }
          }
    
          function validate()
          {
            var txt1 = document.getElementById('txt1').value || '';
            var txt2 = document.getElementById('txt2').value || '';
            var txt3 = document.getElementById('txt3').value || '';
            var txt4 = document.getElementById('txt4').value || '';
            var type = $('input[name="Type"]:checked').val();
            var a = [txt1,txt2,txt3,txt4,type];
            if(txt1 && txt2 && txt3 && txt4)
            {
              google.script.run
                .withSuccessHandler(setResponse)
                .getData(a);
                return true;
            }
            else
            {
              alert('All fields must be completed.');
            }
          }
    
          function loadTxt(from,to)
          {
              document.getElementById(to).value = document.getElementById(from).value;
          }
    
          function radioValue()
          {
            var radios = document.getElementsByName('genderS');
            for (var i = 0, length = radios.length; i < length; i++) 
            {
              if(radios[i].checked) 
              {
                return radios[i].value;
              }
            }
          }
    
    
         console.log('My Code');
       </script>
      </body>
    </html>
    
    0 讨论(0)
提交回复
热议问题