如何从范围中添加图像的交付结果?

时间:2017-06-16 14:42:18

标签: google-apps-script google-sheets

我是编程的初学者。 有一个script通过突出显示所需的行来返回找到的值范围。作者@Jack Brown。 我做了一些小补充。这是我现在正在使用的脚本。 问题:如何在范围(“W3:W17”)中添加文本(“N1:V15”)图像的传送? that's the expected result 谢谢!

function doGet(e)
    {
      var sheet = SpreadsheetApp.openById("1siy44rpMtdLmcCMUiopQ__Z13KkFnB_HMJhiJ_Qv0QY");
      sheet.getRange("A2").setValue(e.parameter.p1) ;
      var n= sheet.getRange("N1:V15").getValues();
      var h= sheet.getRange("L2").getValue(); //Line number for selection
      var z= sheet.getRange("M2").getValue(); 
      if (z==="#N/A"){return HtmlService.createHtmlOutput("Code not found");
                   }
    var retStr ="<style> .tcol { font: 10pt arial;font-weight: bold; color : DarkBlue; } </style> <table>"
      for(var i = 0 ; i< n.length ; i++){
       if ( i != h) {
        retStr +="<tr><td>"+ n[i].join("</td><td>") +"</td></tr>"
       } else {
        retStr +="<tr><td class = 'tcol'>" + n[i].join("</td><td class = 'tcol'>") +"</td></div></tr>"
       }

      }
      retStr += "</table>"

        return HtmlService.createHtmlOutput(retStr)
      }

电子表格 https://docs.google.com/spreadsheets/d/1siy44rpMtdLmcCMUiopQ__Z13KkFnB_HMJhiJ_Qv0QY/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

以下是一个简单的Web应用程序示例,我将它放在一起以演示GAS中的高级模板。为简单起见,用作图像网址源的电子表格包含单个列

enter image description here

1)将html模板添加到您的GAS项目中。您可以通过文件创建html文件 - &gt;新 - &gt; Html文件。我将文件称为“图像”。

2)在doGet()函数中,从电子表格中检索值数组,然后将其作为属性附加到模板对象。这将允许您直接从html引用变量。在模板上调用evaluate()将执行内联代码并构建发送到浏览器的htmlOutput。

function doGet(){

var ss = SpreadsheetApp.openById(yourId);
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:A" + sheet.getLastRow());
var urls = range.getValues();

var template = HtmlService.createTemplateFromFile('images');
template.urls = urls;

return template.evaluate();


}

3)对于您的html文件,使用scriptlet动态创建与数组具有值一样多的表格单元格。有关模板的更多信息https://developers.google.com/apps-script/guides/html/templates

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <table>

    <tr><th>Images</th></tr>

    <?

    for(var i=0; i < urls.length; i++ ) { ?>

    <tr>

     <? for(var j=0; j < urls[i].length; j++) { ?>  

    <td> <img src="<?=urls[i][j]?>" /> </td>


    <?}?>

     </tr>
   <? }

    ?>

    </table>
  </body>
</html>

4)将您的脚本部署为Web应用程序。结果如下

enter image description here