Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 - Fatal编程技术网

Google apps script 将项目搜索为一个";“工具条”;在谷歌表单脚本中

Google apps script 将项目搜索为一个";“工具条”;在谷歌表单脚本中,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正试图在工具栏中添加“搜索项目”选项。 基本上,我在同一个谷歌表单中有6个不同的标签,但每个表单中的项目太多,用户可能无法找到 有没有办法使用GoogleSheet脚本在工具栏中添加这样的工具 上面是指向示例数据的链接 数据由ad服务器系统的API生成 在我的真实数据中,“创造性”列有大约1000个以上的唯一条目 是否有一种潜在的方法可以将选项放在一个进行“创造性”搜索工作的工具栏中,告诉我们创造性的“c6”是在第二行的“第一”选项卡中找到的 但只在“未隐藏”选项卡中搜索这些项目 我不知道该

我正试图在工具栏中添加“搜索项目”选项。 基本上,我在同一个谷歌表单中有6个不同的标签,但每个表单中的项目太多,用户可能无法找到

有没有办法使用GoogleSheet脚本在工具栏中添加这样的工具

上面是指向示例数据的链接

数据由ad服务器系统的API生成

在我的真实数据中,“创造性”列有大约1000个以上的唯一条目

是否有一种潜在的方法可以将选项放在一个进行“创造性”搜索工作的工具栏中,告诉我们创造性的“c6”是在第二行的“第一”选项卡中找到的

但只在“未隐藏”选项卡中搜索这些项目

我不知道该从哪里开始。。给定多个选项卡

有人能给我提些建议吗?

  • 输入搜索值。
    • 您希望通过菜单栏运行Google Apps脚本
  • 使用搜索值搜索每个工作表的“A”列,当在“A”列找到搜索值时,它检索该行。
    • 有些工作表不想用于搜索
  • 您希望如下所示显示结果

    Creative "C6" was found in "Second", "fifth" tab
    Second Tab: Impression:100 / Click:100
    Fifth Tab: Impression:100 / Click:100
    
我如上所述理解。如果我的理解是正确的,那么这个示例脚本怎么样?请把这看作是其中之一

流量:
  • 打开电子表格时,将添加自定义菜单
  • 从自定义菜单的“显示提示”运行脚本。这样,就会打开一个对话框
  • 在文本输入字段中输入搜索文本,然后单击“确定”按钮
  • 在脚本中,使用TextFinder使用输入的搜索文本搜索行
  • 通过对话框将结果显示为示例
  • 示例脚本: 在运行脚本之前,请将工作表名称设置为
    sheets

    function onOpen() {
      SpreadsheetApp.getUi()
          .createMenu('Custom Menu')
          .addItem('Show prompt', 'showPrompt')
          .addToUi();
    }
    
    function showPrompt() {
      // Please set the sheet name you want to use for searching.
      var sheets = ["first", "second", "third", "fourth", "fifth", "sixth"];
    
      var ui = SpreadsheetApp.getUi();
      var res = ui.prompt('Sample', 'Input search text:', ui.ButtonSet.OK_CANCEL);
      var button = res.getSelectedButton();
      if (button == ui.Button.OK) {
        var findText = res.getResponseText();
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var header = "Creative \"" + findText + "\" was found in ";
        var values = "";
        var object = sheets.reduce(function(obj, sheetName, i) {
          var sheet = ss.getSheetByName(sheetName);
          var textFinder = sheet.createTextFinder(findText);
          var searchedRows = textFinder.findAll().reduce(function(ar, e) {
            if (e.getColumn() == 1) {
              var row = sheet.getRange(e.getRow(), 1, 1, sheet.getLastColumn()).getValues()[0];
              if (row[0] === findText) {
                ar.push(row);
                header += '"' + sheetName + '"' + (i == sheets.length - 1 ? " tab\n" : ", ");
                values += sheetName + " Tab: Impression:" + row[1] + " / Click:" + row[2] + "\n";
              }
            }
            return ar;
          }, []);
          if (searchedRows.length > 0) obj[sheetName] = searchedRows;
          return obj;
        }, {});
        Logger.log(object);
        ui.alert(header + values);
      }
    }
    
    输入:

    输出:

    注:
    • 这是一个示例脚本。请根据您的情况修改此选项
    参考资料:
    编辑:
    • 当搜索到的文本未找到时,您希望显示“您刚才搜索的创意不存在,请返回并检查是否有任何打字错误!”
    为了将您的上述请求反映到脚本中,请按以下方式修改上述脚本

    Creative "C6" was found in "Second", "fifth" tab
    Second Tab: Impression:100 / Click:100
    Fifth Tab: Impression:100 / Click:100
    
    发件人: 致:
    为了纠正你的情况,我可以问一下你的目标吗?1.当我看到您的共享电子表格时,我想您可能希望使用一个值搜索每列“A”(
    Creative
    )中的行。我的理解正确吗?2.你认为工具栏是什么?3.在标记中,使用“Javascript”。你想用不是谷歌应用脚本的Javascript实现这一点吗?4.你能提供你当前的脚本吗?5.“原始”的标签是什么?在实际的电子表格中,是否包含您不希望搜索的选项卡?我为我糟糕的英语水平道歉。你好,塔奈克,哦,你又来了!!我不明白当你说你的英语很差的时候,当你的句子很完美的时候,无论如何我记得你!你回答了我之前的问题,并且能够完美地完成任务……:)因此,对于这项任务,1)我试图搜索“创意”列中的项目,并返回“创意”列中的实际项目+印象+点击值(与该创意基本相邻的数值…)2)工具栏,如显示在谷歌工作表顶部的其中一个工具栏中。(在“数据”、“工具”旁边)3)否,通过谷歌表单应用程序脚本!(待续)。。5) RAW是原始数据,是所有单独选项卡的原点。(我没有把它包括在这里)是的,这是我不想被搜索的选项卡,因为那只是原始数据。4) 坦白地说,对于这个脚本,我没有专门为这个工具栏任务编写过,但是我有API调用、原始数据转换和拆分为单独的选项卡代码。。我们也应该研究一下这个代码吗?我真的不知道如何开始创建这个工具栏…谢谢你的快速回复。我理解你的目标如下。1.输入搜索值。您希望通过菜单栏运行Google Apps脚本。2.使用搜索值搜索每个工作表的“A”列,当在“A”列找到搜索值时,它检索该行。有些工作表不想用于搜索。你能告诉我我的理解是否正确吗?另外一个问题是,你想在哪里显示搜索结果?是的!!这是100%正确的。但对于结果部分,需要进行一些修改。。因此,结果将包括a)该项目包含在哪个选项卡中b)关联的印象值/单击每个选项卡中的值。嘿,塔奈克,我刚刚尝试过,这又完全符合预期!!唯一的问题是,当我们分配这个sheets变量时,[“first”、“second”、“third”、“fourth”、“fifth”、“sixth”],我们能让这个条目来自原始数据本身吗?因为只要有新条目,标签就会自动生成。没关系,我想!使用var sheets=new Array()var sheetss=SpreadsheetApp.getActiveSpreadsheet().getSheets();对于(var i=0;iHey Tanaike,对不起,我没有这个问题,我有另一个问题..如果没有找到创意,是否可以显示“错误:未找到”消息?@Jason1993感谢您的回复。我很高兴您的问题得到了解决。关于您的新问题,当
    Creative
    列中没有值时,不会发生错误。如果您想使用其他格式的数据,能否将其作为新问题发布?因为一个问题应该有一个答案。此时,请关闭此问题uestion。这样,其他用户可以将您的问题视为已解决的问题。如果您可以合作解决您的问题,我很高兴。嘿,Tanaike,我的意思是,当您搜索的创意名称在任何工作表中都不存在时,请提示消息“creative Not Found!”(基本上,不一定是错误,但如果
    if (Object.keys(object).length > 0) {
      ui.alert(header.slice(0, -2) + " tab\n" + values);
    } else {
      ui.alert("The creative you just searched for does not exist, please go back and check if there is any typo!");
    }