使用设置

时间:2017-11-22 08:59:50

标签: javascript google-sheets google-spreadsheet-api

我正在尝试创建一些东西,当脚本运行时,它会读取已在那里设置的参数。

例如,加载自定义侧边栏,用户可以在其中输入详细信息或参数来运行脚本。这些参数将保留,直到它们被更改,但每次运行使用这些参数的脚本时都不需要这些参数。

有点像设置菜单。

我已经在一些插件中看到类似的东西,有人可以指出正确的指示如何去做这件事。

我已经成功运行了脚本,只需要一个可以输入和设置参数的UI。如果可能的话,我想避免从电子表格中的表格中阅读它。

编辑:

我发现有一个可用的getscriptproperty可供所有用户使用:

到目前为止,我有更新(2): HTML:

function showside(){

SpreadsheetApp.getUi().showSidebar(HtmlService.createHtmlOutputFromFile('body'))
}

function setProperty(objectForm){
  PropertiesService.getScriptProperties().setProperties(
    {a1: objectForm.a1 , 
		a2: objectForm.a2, 
		p1: objectForm.p1,
		p2: objectForm.p3})
  return 'Updated'
}
<!DOCTYPE html>
<html>
  <head>
  <script>
  function readProperty(){
  
  var settings = PropertiesService.getScriptProperties(), keys = settings.getKeys()
  Logger.log('running')
  for (var i =0;i<keys.length;i++){
  document.getElementbyID(keys[i].toUpperCase()).value = settings.getProperty(keys[i])

  }
}

function handleFormSubmit(objectForm){
google.script.run.setProperty(update).setProperty(objectForm)
}

function update(update){
        var div = document.getElementById('output');
        div.innerHTML = 'Updated!';
      }
</script>

    <base target="_top">
  </head>
  <body onload="readProperty()">
  <form id="myForm" onsubmit="handleFormSubmit(this)">
  
  a1<input type="url" id="a1" value="" />
  a2<input type="url" id="a2" value="" />
  a3<input type="url" id="a3" value="" />
  P1<input type="text" id="P1" value="" />
  P2<input type="text" id="P2" value="" />
  <input type="submit" value="Submit" />
  </form>
  <div id="output"></div>
  </body>
  
  
</html>

1 个答案:

答案 0 :(得分:0)

粗略的方法;从这里开始即兴;

读取loadScript();

中的注释

document.getElementById("formWithData").onsubmit = loadScript();

function loadScript() {
   // get data from submitted form
   // this way script will re-run with data based on what u give in the form
}
<form id="formWithData">
<input type="text" placeholder ="enter condition 1">
<input type="text" placeholder ="enter condition 2">
<input type="text" placeholder ="enter condition 3">
</form>