Google应用脚本电子表格会返回所选范围

时间:2015-02-17 09:48:43

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

我需要选择一个单元格然后获取此单元格值并放入侧边栏文本框区域,然后按下提交按钮将此文本放入相同的选定单元格。

所以我有侧边栏html

<div>
<script>
  function updateUrl(vals,range) {   
    var div = document.getElementById('myTextarea');
    div.value = vals.vals ;
  }
</script>
<form id="myForm">
<input type="button" value="Select" onclick="google.script.run
          .withSuccessHandler(updateUrl)
          .getData1()" />
<input onclick="google.script.run.getValuesFromEditor(document.forms[0])" type="button" value="Submit" /><input type="button" value="Close" onclick="google.script.host.close()" /><br/>
<textarea style="border: none; width: 100%; height: 100%; box-sizing: border-box;-ms-box-sizing: border-box;-webkit-box-sizing: border-box;overflow: hidden;position: absolute;" wrap="hard" name="myTextarea" id="myTextarea"></textarea>
</form>
</div>

在script.gs

function getValuesFromEditor(editor){
  var rowData = editor.myTextarea;
  range.setValues(rowData);
}
function getData1() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var range = sheet.getActiveCell();
 var vals = range.getValue();
  return {vals:vals,range:range};
};

但是我无法获得选定的单元格区域,因此它始终是未定义的。 因此,如何从textarea那里投入相同的选定范围。因为它可以将单元格值放到文本区域然后更改选择但我想阻止这样做,所以数据必须发布在相同的单元格中,从中获取值。

换句话说,如果值从A1单元格转移到文本区域,那么如果按下提交按钮,则更改文本必须仅放置在A1单元格而不是活动单元格中,因为选择可以在按下提交按钮时更改。

1 个答案:

答案 0 :(得分:2)

function getValuesFromEditor(editor){
      var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveCell();
      var rowData = editor.myTextarea;
}
function getData1() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 // Returns the active cell
 var range = sheet.getActiveCell();
 var vals = range.getValue();
  return vals;
};