Google应用脚本监控器电子表格选择的范围 [英] Google app script monitor spreadsheet selected ranges
问题描述
我想编写一个可以获取所选单元格的应用程序脚本
I want to write a app script that can get the selected cells
并将其显示在html输入文本上.
and show it on the html input text.
示例:
当我选择A1单元格时,输入文本将显示A1
when I selected A1 cell, then the input text will show A1
如果我在A1到B11之间选择一个范围,那么它将显示A1:B11
also if I selected a range between A1 to B11, then it will show A1:B11
我知道 getActiveRange().getA1Notation()
可以获取单元格.
I know getActiveRange().getA1Notation()
can get the cell.
但是如何监视拖动选择事件?
But how to monitor the drag select event?
推荐答案
I made this as a possible solution. The app script looks like this. It works quite well. Not sure if it is what you are looking for.
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile('Page')
.setTitle('My custom sidebar')
.setWidth(300);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showSidebar(html);
}
function getActiveRange(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
var range = sheet.getActiveRange().getA1Notation();
Logger.log(range)
return range
}
侧栏具有每200秒调用一次的功能.使它看起来像是通过鼠标拖动来获取数据.
The side bar has function that calls every 200th of a second. Making it look like it is getting the data on mouse drag.
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
<title></title>
</head>
<body>
<input id="data">
<script>
$(document).ready(() => {
setInterval(()=>{
google.script.run.withSuccessHandler(log).getActiveRange();
},200)
})
log(e) => {
$('#data').val(e)
}
</script>
</body>
</html>
这篇关于Google应用脚本监控器电子表格选择的范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!