Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 有没有办法在谷歌表单对话框中使用单选按钮并使用谷歌应用程序脚本保存值?_Google Apps Script_Google Sheets_Radio Button - Fatal编程技术网

Google apps script 有没有办法在谷歌表单对话框中使用单选按钮并使用谷歌应用程序脚本保存值?

Google apps script 有没有办法在谷歌表单对话框中使用单选按钮并使用谷歌应用程序脚本保存值?,google-apps-script,google-sheets,radio-button,Google Apps Script,Google Sheets,Radio Button,简单地说,我的目标是突出显示一个google工作表(“源”)上的单元格范围,并将其移动到另一个不同的google工作表文档(“目标”)。目标有多个工作表(选项卡?),并且经常添加新的工作表 重要提示:要清楚,我不是在同一文档中从一张纸复制到另一张纸。我正在从一个google sheet文档复制到另一个google sheet文档 目前,我的代码允许用户: 突出显示源google工作表中的单元格范围 选择自定义菜单选项 选择自定义菜单选项后,高亮显示的单元格区域中的数据将复制到目标google工作

简单地说,我的目标是突出显示一个google工作表(“源”)上的单元格范围,并将其移动到另一个不同的google工作表文档(“目标”)。目标有多个工作表(选项卡?),并且经常添加新的工作表

重要提示:要清楚,我不是在同一文档中从一张纸复制到另一张纸。我正在从一个google sheet文档复制到另一个google sheet文档

目前,我的代码允许用户:

  • 突出显示源google工作表中的单元格范围
  • 选择自定义菜单选项
  • 选择自定义菜单选项后,高亮显示的单元格区域中的数据将复制到目标google工作表
  • 目前,“目标”是硬编码的

    我想做的是建立一个单选按钮列表。目标google工作表中存在的每个工作表都有一个单选按钮。允许用户选择一个,然后在按下“确定”按钮时将数据移动到该特定工作表


    我已经搜索了一段时间,但我找不到任何关于在google sheet对话框中放置单选按钮的信息,更不用说根据另一个google sheet文档中存在的表单来构建单选按钮列表了。

    下面是一个单选对话框的简单示例:

    function radiosOnADialog() {
      var ss=SpreadsheetApp.getActive();
      var sh=ss.getActiveSheet();
      var html='<html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"><script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script></head>';
      for(var i=0;i<10;i++) {
        html+=Utilities.formatString('<br /><input type="radio" name="rgroup" id="%s" value="%s" onChange="getSelected();" />%s','id'+ Number(i+1),'radio' + Number(i+1),' radio' + Number(i+1));
      }
      html+='<body><br /><input type="button" value="close" onClick="google.script.host.close()" /><div id="msgdiv"></div>';
      html+='<script>function getSelected(){ var selected=document.querySelector(\'input[name="rgroup"]:checked\').value;document.getElementById("msgdiv").innerHTML="<br />You selected " + selected  + ".<br />";}</script></body></html>'; 
      var ui=HtmlService.createHtmlOutput(html);
      SpreadsheetApp.getUi().showModelessDialog(ui, 'A Radio Dialog');
    }
    
    函数对话框(){
    var ss=SpreadsheetApp.getActive();
    var sh=ss.getActiveSheet();
    var html='';
    
    对于(var i=0;i结束这个问题,因为我现在知道需要使用HTML。

    我能够使用下面脚本中的Google Sheets复选框来创建单选按钮效果(看起来仍然像一个复选框,但是当选中给定行中的一个复选框时,它会取消选中该行中的任何其他复选框(B-E列)(之前已经检查过)


    我的复选框在B、C、D、E列,我相信(我在学习的过程中,所以我不是100%确定)这就是“为什么”(var i=2;iA dialog可以处理您想要提供的任何html/javascript/css。抱歉,我不清楚。我想知道是否有一种方法可以使用Google应用程序脚本而不使用html来实现这一点。它没有出现在那里。虽然该函数使用html字符串,但实际上它是一个服务器端函数。过去有另一个UI创建面板和其他界面呃。老实说,我从来没有使用过,因为我对html、css和javascript比较熟悉。据我所知,所有的Google Sheets对话框和侧栏都是客户端的。所以html、javascript和css。还有很多其他库,比如JQuery。都很好。我感谢你的帮助。我是这方面的100%新手。从零开始学习。我会做到的。那就是再次感谢你!我有一个简单的对话框,它在电子表格中工作,可能对你有一些价值。你可以阅读并获取它的代码。它被称为复制/移动对话框(相同的电子表格)
       function onEdit(evt) {
    
        var range = evt.range;
        var val = range.getValue();
        var row = range.getRow();
        var col = range.getColumn();
    
        // -------------------------------------
        // --- Only 1 checkbox per row can be ticked ---
        // -------------------------------------
      for(var i = 2;i<6;i++){
        if(i == col) continue;
    
            if (val) {
                SpreadsheetApp.getActiveSheet().getRange(row,i).setValue('FALSE');    
    }
        }}