2016-11-28 2 views
1

В листе google, я хочу заполнить форму на боковой панели со значениями из активного листа. Поскольку я не могу использовать щелчок на элементе ячеек, я хочу использовать функцию, которая принимает значение активной ячейки при нажатии кнопки на боковой панели. Я написал этот код, но это не сработало, нозаполните боковую панель от листа

Я новичок в сценарии приложений, поэтому извините мой код низкого уровня :) Спасибо!

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; 
    } 

ответ

3

У вас есть опечатка в HTML-файл. Снимите дополнительный е в getElementByID, чтобы сделать это:

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; 
} 
+0

Большое вам спасибо Karl_S! он работает сейчас. – MrMus

0

Btw вы можете вызвать функцию с использованием изображения, и связывая это изображение в функция. «Трюк» для запуска чего-то из ячейки

Смежные вопросы