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
User interface Google Sheets侧边栏用户输入下拉菜单w/来自电子表格范围的值_User Interface_Google Apps Script_Google Sheets_Drop Down Menu_Sidebar - Fatal编程技术网

User interface Google Sheets侧边栏用户输入下拉菜单w/来自电子表格范围的值

User interface Google Sheets侧边栏用户输入下拉菜单w/来自电子表格范围的值,user-interface,google-apps-script,google-sheets,drop-down-menu,sidebar,User Interface,Google Apps Script,Google Sheets,Drop Down Menu,Sidebar,我读过很多关于在谷歌表单中使用下拉菜单的论坛帖子,但我真的不太熟悉脚本来修改这些解决方案以满足我的需要。我真的很感激能得到任何帮助 此侧边栏在我的工作日志表末尾添加了一个新条目。它目前可用于文本输入,但我希望某些字段是下拉菜单,带有电子表格中各种动态范围的选项 使用showNewJobSidebar()打开侧栏时,将填充下拉选项 周转、类别、加价、折扣、客户和类型的输入将是下拉菜单 以下是要使用的动态数据范围: 周转率=费率!A2:A 类别=费率!B2:B 向上收费=向上收费!A2:A 折

我读过很多关于在谷歌表单中使用下拉菜单的论坛帖子,但我真的不太熟悉脚本来修改这些解决方案以满足我的需要。我真的很感激能得到任何帮助

此侧边栏在我的工作日志表末尾添加了一个新条目。它目前可用于文本输入,但我希望某些字段是下拉菜单,带有电子表格中各种动态范围的选项


  • 使用showNewJobSidebar()打开侧栏时,将填充下拉选项
  • 周转、类别、加价、折扣、客户和类型的输入将是下拉菜单
  • 以下是要使用的动态数据范围:

    • 周转率=费率!A2:A
    • 类别=费率!B2:B
    • 向上收费=向上收费!A2:A
    • 折扣=折扣!A2:A
    • 客户=花名册!A2:A
    • 类型=数据!A2:A
    规范G.gs的适用部分:

    函数showNewJobSidebar(){
    var html=HtmlService
    .CreateHtmlOutpFromFile('NewJobSidebar')
    .setTitle(“新作业侧栏”)
    .设置宽度(200);
    SpreadsheetApp.getUi()
    .showSidebar(html);
    }
    功能applyNew(周转、类别、加价、折扣、,
    datein、timein、datedue、timedue、客户端、类型、说明、页面){
    var ss=SpreadsheetApp.getActive()
    var sheet=ss.getSheetByName(“作业日志”);
    //选择要检查第一个空白单元格的列
    var columnToCheck=sheet.getRange(“B:B”).getValues();
    //根据单个列的数据范围获取最后一行。
    var lastRow=getlastrowsecial(columnToCheck);
    var selectedRow=lastRow+1;
    //将周转应用于B列=第2列
    sheet.getRange(selectedRow,2).setValue(周转);
    //将类别应用于C列=第3列
    sheet.getRange(selectedRow,3).setValue(类别);
    //向D列施加追加费用=第4列
    sheet.getRange(selectedRow,4)、setValue(upcharge);
    //对E列应用折扣=第5列
    sheet.getRange(selectedRow,5).setValue(折扣);
    //将datein应用于F列=第6列
    sheet.getRange(selectedRow,6).setValue(datein);
    //将timein应用于G列=第7列
    sheet.getRange(selectedRow,7).setValue(timein);
    //由于第H列=第8列而应用日期
    sheet.getRange(selectedRow,8).setValue(datedue);
    //由于第I列=第9列而应用时间
    sheet.getRange(selectedRow,9).setValue(timedue);
    //将客户端应用到列L=列12
    sheet.getRange(selectedRow,12).setValue(客户端);
    //将类型应用于列M=列13
    sheet.getRange(selectedRow,13).setValue(类型);
    //将说明应用于第N列=第14列
    sheet.getRange(selectedRow,14).setValue(说明);
    //将页面应用到第O列=第15列
    sheet.getRange(selectedRow,15).setValue(页数);
    };
    函数getLastRowSpecial(范围){
    var-rowNum=0;
    var blank=false;
    对于(变量行=0;行};要创建动态下拉列表,您必须使用允许您创建动态HTML内容的HTML模板。首先从电子表格中获取所需的数据,然后将其传递给模板

    从应用程序脚本生成模板和变量:

    function showNewJobSidebar() {
      var html = HtmlService
          .createTemplateFromFile('NewJobSidebar');
    
      // Add the dropdown lists to the template
      html.turnaroundDPDWN = SpreadsheetApp.getActiveSheet().getRange("A2:A5").getValues();
    
      // Keep adding the variables you need based on the ranges containing your dropdown values
      // ...
    
      // Prepares the template to be shown in the UI
      html = html.evaluate()
          .setTitle('New Job Sidebar')
          .setWidth(200);
    
      SpreadsheetApp.getUi().showSidebar(html);
    }
    
    将基于在应用程序脚本中创建的列表的动态下拉列表添加到html中

    <body bgcolor="#039EB2">
      <font face="arial" color="white">
        <b>Enter new job details.</b><br><br>
    
        <!-- Create input fields to accept values from the user -->
        Turnaround:<br>
        <select id="Turnaround">
        <? for (let i in turnaroundDPDWN) { ?>
          <option value="<?=turnaroundDPDWN[i]?>"><?=turnaroundDPDWN[i]?></option>
        <? } ?>
        </select>
    
        <!-- And so on with the others dropdowns -->
    
    
    输入新作业详细信息。

    周转:

    这里有一个简单的对话:我一直生病,但现在我感觉好多了,有机会测试一下。它工作得很好!非常感谢你!我想学习谷歌应用程序脚本的人会想知道这些标签被称为Scriptlet