Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/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电子表格范围中选择HTML选项_Html_Google Apps Script_Google Sheets - Fatal编程技术网

从Google电子表格范围中选择HTML选项

从Google电子表格范围中选择HTML选项,html,google-apps-script,google-sheets,Html,Google Apps Script,Google Sheets,我正在寻找一个真正有效的代码,我尝试的一切都不起作用。有人能帮我吗 Sidebar.gs function onOpen() { SpreadsheetApp.getUi() // Or DocumentApp or FormApp. .createMenu('Update project') .addItem('Open', 'showSidebar') .addToUi(); } 侧边栏显示正确,但组合中没有数据。我错过了什么 function s

我正在寻找一个真正有效的代码,我尝试的一切都不起作用。有人能帮我吗

Sidebar.gs

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Update project')
      .addItem('Open', 'showSidebar')
      .addToUi();
}
侧边栏显示正确,但组合中没有数据。我错过了什么

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('Index')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Project updater')
      .setWidth(200);
  SpreadsheetApp.getUi()
      .showSidebar(html);
}

Index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <p>Create sub-folders </p>
  </head>
  <body>
    <script> // SpreadSheet
          var activSpSh = SpreadsheetApp.getActive();
          // Feuille répertoires créés
          var foldersSh = activSpSh.getActiveSheet();
          var lastRow = foldersSh.getLastRow();
          var myRange = foldersSh.getRange("A2:A"+lastRow); 
          var data    = myRange.getValues(); 
    </script>
    <div>
      <select>
        <script> for (var i = 0; i < data.length; ++i) { </script>
        <option><script>= data[i].getvalue(); </script></option>
        <script> } </script>
      </select>
    </div>
  </body>
</html>
函数showSidebar(){
var html=HtmlService.createHtmlOutFromFile('索引')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle(“项目更新程序”)
.设置宽度(200);
SpreadsheetApp.getUi()
.showSidebar(html);
}
Index.html
创建子文件夹

//电子表格 var activSpSh=SpreadsheetApp.getActive(); //福耶尔研究中心 var foldersSh=activSpSh.getActiveSheet(); var lastRow=foldersSh.getLastRow(); var myRange=foldersSh.getRange(“A2:A”+lastRow); var data=myRange.getValues(); 对于(var i=0;i
谷歌应用程序脚本方法在服务器端运行,因此不能在HTML文件中直接调用它们。相反,应该使用多种可用的方法来调用它们。有关更多详细信息,请参阅。

您需要使用
createTemplateFromFile()
方法,而不是
createHtmlOutFromFile()
方法

function showSidebar() {
  var html = HtmlService.createTemplateFromFile('Index')
      .evaluate()
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Project updater')
      .setWidth(200);
  SpreadsheetApp.getUi()
      .showSidebar(html);
}
您现在在
标记中的代码需要位于脚本(服务器端)文件中,其中包含
返回数据语句

代码.gs
函数myFunction(){
var activSpSh=SpreadsheetApp.getActive();
//福耶尔研究中心
var foldersSh=activSpSh.getActiveSheet();
var lastRow=foldersSh.getLastRow();
var myRange=foldersSh.getRange(“A2:A”+lastRow);
var data=myRange.getValues();
var optionsHTML=“”;
对于(变量i=0;i
然后需要使用打印脚本:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <p>Create sub-folders </p>
  </head>
  <body>
    <div>
      <select>
       <?!= myFunction(); ?>
      </select>
    </div>
  </body>
</html>

创建子文件夹


谢谢,我无法创建这两个函数与HTML之间的关系。
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <p>Create sub-folders </p>
  </head>
  <body>
    <div>
      <select>
       <?!= myFunction(); ?>
      </select>
    </div>
  </body>
</html>