我是编程的初学者。 我在单元格A2中对电子表格进行查询,然后根据请求过滤数据并接收所需范围“I1:L16”。然后我将数据返回到平板电脑。平板电脑上的一切都很好,但阅读不舒服,没有换行! 请告诉我如何以与电子表格相同的形式返回“I1:L16”范围。它是逐行的。
我的剧本
function doGet(e)
{
var sheet = SpreadsheetApp.openById("1UBKi7VDo1aJjn6IwGMKvlxy4Jz9d9jVdY79zpOrkQP8");
sheet.getRange("A2").setValue(e.parameter.p1) ;
var n= sheet.getRange("I1:L16").getValues();
return ContentService.createTextOutput(n);
}
电子表格 https://docs.google.com/spreadsheets/d/1UBKi7VDo1aJjn6IwGMKvlxy4Jz9d9jVdY79zpOrkQP8/edit?usp=sharing
URL Web应用程序:示例查询 https://script.google.com/macros/s/AKfycbyHu7d5djciltlG-micI6O-cQheC6kN7yWKkevm5KwGCJiKROZB/exec?p1=1234567891118
最好的问候,亚历山大。
答案 0 :(得分:1)
您可以这样做:
function doGet(e)
{
var sheet = SpreadsheetApp.openById("1UBKi7VDo1aJjn6IwGMKvlxy4Jz9d9jVdY79zpOrkQP8");
sheet.getRange("A2").setValue(e.parameter.p1) ;
var n= sheet.getRange("I1:L16").getValues();
var retStr =""
for(var i = 0 ; i< n.length ; i++){
retStr += n[i].join("\t") +"\n" //Insert a tab between each element and newline at each row
}
return ContentService.createTextOutput(retStr);
}
编辑:替代/强大选项
更好的选择是为Html内容提供服务,这样您就可以利用Html标记来改善数据的呈现方式。 在下面的数据中,我假设您要突出显示第6行,您可以使用css元素将文本设置为红色和粗体。 代码:
function doGet(e)
{
var sheet = SpreadsheetApp.openById("1UBKi7VDo1aJjn6IwGMKvlxy4Jz9d9jVdY79zpOrkQP8");
sheet.getRange("A2").setValue(e.parameter.p1) ;
var n= sheet.getRange("I1:L16").getValues();
var retStr ="<style> .tcol { font-weight: bold; color : red; } </style> <table>"
for(var i = 0 ; i< n.length ; i++){
if ( i != 5) { //I assuming row 6 is what you want to highlight
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)
}
希望有所帮助!