Google应用脚本监控电子表格选定范围

问题描述 投票:0回答:1

我想编写一个可以获取所选单元格的应用程序脚本

并在html输入文本上显示它。

例:

当我选择A1单元格时,输入文本将显示A1

如果我选择A1到B11之间的范围,那么它将显示A1:B11

我知道getActiveRange().getA1Notation()可以获得细胞。

但是如何监控拖动选择事件?

google-apps-script add-on
1个回答
1
投票

我把this作为一种可能的解决方案。应用程序脚本如下所示。它运作得很好。不确定它是否是你想要的。

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秒呼叫一次的功能。使它看起来像是获取鼠标拖动数据。

<!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>
© www.soinside.com 2019 - 2024. All rights reserved.