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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 在HTML边栏显示的特定单元格数据上运行自定义搜索功能时遇到问题_Google Apps Script_Google Sheets_Google Custom Search - Fatal编程技术网

Google apps script 在HTML边栏显示的特定单元格数据上运行自定义搜索功能时遇到问题

Google apps script 在HTML边栏显示的特定单元格数据上运行自定义搜索功能时遇到问题,google-apps-script,google-sheets,google-custom-search,Google Apps Script,Google Sheets,Google Custom Search,我正在谷歌工作表中设置一个边栏来显示行中的信息,以便让我的团队更好地查看某些数据。通过一些Mogsdad的答案(巨大的道具),我能够设置侧栏HTML和显示函数,用所选行的信息更新DOM。我试图通过在行范围内的特定单元格(字符串)上运行自定义搜索并向DOM中添加一个元素来扩展此功能,该元素显示前5个Google搜索结果;但是,我很难找到特定单元格(实际上是数组中的一列)中的字符串值,在自定义搜索函数中运行它,并获取向HTML添加元素以附加结果的函数 这个用例的灵感来自于,他用事件发言人的信息更新侧

我正在谷歌工作表中设置一个边栏来显示行中的信息,以便让我的团队更好地查看某些数据。通过一些Mogsdad的答案(巨大的道具),我能够设置侧栏HTML和显示函数,用所选行的信息更新DOM。我试图通过在行范围内的特定单元格(字符串)上运行自定义搜索并向DOM中添加一个元素来扩展此功能,该元素显示前5个Google搜索结果;但是,我很难找到特定单元格(实际上是数组中的一列)中的字符串值,在自定义搜索函数中运行它,并获取向HTML添加元素以附加结果的函数

这个用例的灵感来自于,他用事件发言人的信息更新侧边栏,并使用特定单元格中的搜索字符串从Youtube上提取视频。在下面的代码中,您将看到我从Mogsdad及其使用Google的API密钥协议设置自定义搜索引擎的演练中获得了很多信息

以下是我的.gs设置:

/**
*This function creates the sidebar in Sheets' UI based on HTML I set up *separately.
*/
function checkUpdates() {
  var ui = HtmlService.createTemplateFromFile('CheckSidebar')
      .evaluate()
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Recent Sheet Updates');
  SpreadsheetApp.getUi().showSidebar(ui);
};

/**
 * Returns the active row.
 * All based on Mogsdad's sheet polling function from 2015.
 */
function getRecord() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var headers = data[0];
  var rowNum = sheet.getActiveCell().getRow();
  if (rowNum > data.length) return [];
  var record = [];
  for (var col=0;col<headers.length;col++) {
    var cellval = data[rowNum-1][col];
 // Here I tried to set another variable to data[rowNum-1][2] to get some        //specific data from column #3
    Logger.log(cellval);
    record.push({ heading: headers[col],cellval: cellval });

  }
  return record;
}
最后,我在HTML中的标记之间有一个函数,它从getRecord()生成的数组中获取值,并将它们转储到一个类ID为“floatypar”的DOM元素中(当然,对于看起来浮动的段落)。这里有很多Mogsdad的标记:

 function showRecord(record) {
    if (record.length) {
      for (var i = 0; i < record.length; i++) {
        // build field name on the fly, formatted field-1234
        var str = '' + i;
        var fieldId = 'field-' + ('0000' + str).substring(str.length)

        // If this field # doesn't already exist on the page, create it
        if (!$('#'+fieldId).length) {
          var newField = $($.parseHTML('<div id="'+fieldId+'"></div>'));
          $('.floatypar').append(newField);
        }

        // Replace content of the field div with new record
        $('#'+fieldId).replaceWith('<div id="'+fieldId+'" class="floatypar">' +record[i].cellval + '</div>');

      }
    }

    //Setup the next poll
    poll();
  }
函数showRecord(记录){
if(记录长度){
对于(变量i=0;i

当我运行此操作时,侧边栏会在侧边栏中各自的div中显示行中每个单元格的值。然而,我对将第3列中的值传递给搜索引擎并将结果显示在自己的侧边栏div中感到困惑。有人能指导我正确的方向吗?请务必在任何情况下给莫格斯达道具

我无法从你的问题和剧本中理解你的目标。这是因为我的英语水平差。我为此道歉。为了正确理解您当前的情况和目标,您能否提供包含复制当前情况脚本的示例电子表格?另外,你能提供你想要的结果吗?当然,请删除您的个人信息。嗨,塔奈克!别担心,我觉得你的英语不错。我想我没有把我的问题解释清楚;我现在意识到我自己并不真正理解这个问题。我找到了一个非常好的解决方案,看起来我只是在寻找数组的.map方法!谢谢你的关注,朋友。谢谢你的回复。如果你的问题解决了,我很高兴。我无法从你的问题和剧本中理解你的目标。这是因为我的英语水平差。我为此道歉。为了正确理解您当前的情况和目标,您能否提供包含复制当前情况脚本的示例电子表格?另外,你能提供你想要的结果吗?当然,请删除您的个人信息。嗨,塔奈克!别担心,我觉得你的英语不错。我想我没有把我的问题解释清楚;我现在意识到我自己并不真正理解这个问题。我找到了一个非常好的解决方案,看起来我只是在寻找数组的.map方法!谢谢你的关注,朋友。谢谢你的回复。如果你的问题解决了,我很高兴。
 function showRecord(record) {
    if (record.length) {
      for (var i = 0; i < record.length; i++) {
        // build field name on the fly, formatted field-1234
        var str = '' + i;
        var fieldId = 'field-' + ('0000' + str).substring(str.length)

        // If this field # doesn't already exist on the page, create it
        if (!$('#'+fieldId).length) {
          var newField = $($.parseHTML('<div id="'+fieldId+'"></div>'));
          $('.floatypar').append(newField);
        }

        // Replace content of the field div with new record
        $('#'+fieldId).replaceWith('<div id="'+fieldId+'" class="floatypar">' +record[i].cellval + '</div>');

      }
    }

    //Setup the next poll
    poll();
  }