【发布时间】:2020-04-30 09:54:46
【问题描述】:
我是 GAS 新手,我正在尝试创建一个显示可搜索人员列表的应用,单击唯一 ID 号并打开另一个页面以更新数据。我使用不同的方法使搜索工作,但只会将数据返回到日志而不是正确地返回到 html 表。昨晚我偶然发现了this post,我认为它可以让我创建链接,但我不知道如何使用多维数组独立显示每一列。下面的代码吐出整行,但我需要将第一列链接到一个 url,该 url 会根据第一列中的数据对每一行进行更改。我想我会尝试用计算的链接创建一个新列,如果我抓住那个列,它会起作用,但没有骰子(这就是我拉 J 而不是 A 的原因)。所以 row1 的第一列是 mylink.com?id=36,row2 是 mylink.com?id=400,等等。
所以总的来说我有 3 个问题,如果 2 和 3 结合起来,我可以接受。
- 过滤/搜索多个列(使用通配符?)返回结果。
- 每列独立显示多维数组(主要做#3)。
- 获取第一列中的 id,并根据第一列中的 id 创建一个可点击的 url。
code.gs
function getData()
{
var targetRange = 'SearchList!A:J';
var SQL = 'select J, B, C, D where J is not null';
var Query = '=QUERY('+targetRange+',\"'+SQL+'\")';
Logger.log(Query);
var currentDoc = SpreadsheetApp.openByUrl(url);
var tempSheet = currentDoc.insertSheet();
var pushQuery = tempSheet.getRange(1, 1).setFormula(Query);
var pullResult = tempSheet.getDataRange().getValues();
Logger.log(pullResult);
currentDoc.deleteSheet(tempSheet);
return pullResult;
}
html
<table class="table table-striped table-bordered table-hover">
<thead>
<td>Scripta ID</td>
<td>Last Name</td>
<td>First Name</td>
<td>Birth Date</td>
</thead>
<tbody id="table-body">
<? var data = getData();
for (var i = 0; i < data.length; i++)
{
?>
<tr>
<? for (var j = 0; j < data[i].length; j++)
{
Logger.log(data[i][j]);
?>
<td><a href="<?= ScriptApp.getService().getUrl(); ?>?f=member&sid="&<?= data[i][j] ?>><?= data[i][j] ?></a></td>
<? }
?>
</tr>
<? }
?>
</tbody>
</table>
【问题讨论】: