我是编程的初学者。 有一个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
答案 0 :(得分:1)
以下是一个简单的Web应用程序示例,我将它放在一起以演示GAS中的高级模板。为简单起见,用作图像网址源的电子表格包含单个列
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应用程序。结果如下