2015-02-17 3 views
0

Мне нужно выбрать одну ячейку, затем получить это значение ячеек и поместить в область текстового поля боковой панели и нажать кнопку отправки, поместить этот текст в ту же выбранную ячейку.Google Apps script spreadsheet return selected range

Так у меня есть боковая панель 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}; 
}; 

Но я не могу получить выбранный диапазон ячеек всегда кладется как определено. Итак, как помещать в тот же выбранный диапазон, там было заполнено текстовое поле. Потому что можно поместить значение ячейки в текстовую область, а затем изменить выбор, но я хочу предотвратить это, поэтому данные должны быть опубликованы в той же ячейке, из которой принимаются значения.

Другими словами, если значение имеет форму A1 в текстовой области, то при нажатии кнопки отправки измененный текст должен быть помещен только в ячейку A1, не активируемую, поскольку выбор может быть изменен, пока кнопка отправки будет нажата.

ответ

1
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; 
}; 
Смежные вопросы