从表格填写侧边栏表格

时间:2016-11-28 12:59:28

标签: html google-apps-script google-sheets

在Google工作表中,我想在侧边栏中填写活动工作表中的值。由于我不能单击单元格触发器,我想使用一个函数,当单击侧边栏中的按钮时,该函数将获取活动单元格的值。 我写了这段代码,但不幸的是,它没有用,

我是Apps脚本的新手,请原谅我的低级代码:) 谢谢 !

test_sidebar.html

    <!DOCTYPE html>
<html>
  <head>
    <base target="_top">
   <script>

 function tSubmit(form){

      google.script.run.withSuccessHandler(updateT).getT(form);
 }

 function updateT(cellValue){
 var div=document.getEelementById('T');
 div.innerHTML='<input name="T" size = 10 value=' + cellValue + '>K'
 }

   </script>
  </head>
  <body>
  <form>
    <font color="red">Select conditions of interest:</font><p>
<ul><input value=T type="Button" onClick="tSubmit(this)"><div id="T"> = <input name="T" size = 10>K</div></ul>
<ul><i>P</i> = <input name="P" size = 10>bar</ul>
</form>
  </body>
</html>

code.gs:

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Custom Menu')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('test_sidebar')
      .setTitle('My custom sidebar')
      .setWidth(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html);
}

  function getT(form){
   var cellValue= SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
  return cellValue;
   }

2 个答案:

答案 0 :(得分:3)

html文件中有拼写错误。删除getElementByID中的额外e以使其成为:

var div=document.getElementById('T');

此外,没有必要尝试传递表单,这也导致问题,所以只需删除这些部分。您的最终代码将是:

test_sidebar.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
   <script>

 function tSubmit(){

      google.script.run.withSuccessHandler(updateT).getT();
 }

 function updateT(cellValue){
 var div=document.getElementById('T');
 div.innerHTML='<input name="T" size = 10 value=' + cellValue + '>K'
 }

   </script>
  </head>
  <body>
  <form>
    <font color="red">Select conditions of interest:</font><p>
<ul><input value=T type="Button" onClick="tSubmit()"><div id="T"> = <input name="T" size = 10>K</div></ul>
<ul><i>P</i> = <input name="P" size = 10>bar</ul>
</form>
  </body>
</html>

code.gs:

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Custom Menu')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('test_sidebar')
      .setTitle('My custom sidebar')
      .setWidth(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html);
}

function getT(){
  var cellValue= SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
  return cellValue;
}

答案 1 :(得分:0)

顺便说一句,您可以使用Image触发一个函数,并将该图像链接到一个函数。一个“技巧”来触发来自单元格的东西

相关问题