Google apps script 我们如何根据另一张工作表上的输入行向Google工作表添加行组?
寻找谷歌表单的帮助 我们希望有一个工作表,根据另一个工作表中的数据输入创建摘要信息 随着原始数据表的增长,我们可能会有更多的人。输入将增长,如下所示:Google apps script 我们如何根据另一张工作表上的输入行向Google工作表添加行组?,google-apps-script,google-sheets,google-apps,Google Apps Script,Google Sheets,Google Apps,寻找谷歌表单的帮助 我们希望有一个工作表,根据另一个工作表中的数据输入创建摘要信息 随着原始数据表的增长,我们可能会有更多的人。输入将增长,如下所示: Room ID First Name Last Name Full Name State Zip Room Leader 1 Brian Smith Brian Smith NY 10011 1 Lazy Fox
Room ID First Name Last Name Full Name State Zip Room Leader
1 Brian Smith Brian Smith NY 10011
1 Lazy Fox Lazy Fox VA 22209 Yes
2 Lauren Appleby Lauren Appleby CA 94063 Yes
3 Aaron Johnson Aaron Johnson IL 60603 Yes
3 Adam Johnson Adam Johnson IL 60001
当这种情况发生时,我们希望输出改变以反映这一点。它可能看起来像这样
Room Number 1 State VA
Name Lazy Fox
Room Number 2 State CA
Name Lauren Appleby
Room Number 3 State IL
Name Aaron Johnson
抱歉随机剪切和粘贴,我想我没有足够的代表添加所有内容。希望它能让人明白这一点
这是可能的吗?如有任何想法,将不胜感激。谢谢 这是一个非模态对话框的摘要。我使用您的标题作为摘要字段名。我还以为你想要的是在房间的前导栏中有“是”的行
function dispSummary()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('RoomInfo');
var rng=sht.getDataRange();
var rngA=rng.getValues();
var s='<style>.ttl{color:blue;}</style>';
for(var i=1;i<rngA.length;i++)
{
if(rngA[i][6]=='Yes')
{
s+='<br />' + '<span class="ttl">' + rngA[0][0] + '</span>' + ' = ' + rngA[i][0] + ' ' + '<span class="ttl">' + rngA[0][4] + '</span>' + ' = ' + rngA[i][4] + ' ' + '<span class="ttl">' + rngA[0][3] + '</span>' + ' = ' + rngA[i][3];
}
}
var html=HtmlService.createHtmlOutput(s).setWidth(600).setHeight(500);
SpreadsheetApp.getUi().showModelessDialog(html, 'Values Found')
}
函数dispSummary()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('RoomInfo');
var rng=sht.getDataRange();
var rngA=rng.getValues();
var s='.ttl{color:blue;}';
对于(var i=1;我只是想让你知道,我们中的一些人不会访问非谷歌链接的链接,我也是其中之一。你是如何从六个链接中挑出三个的。他们是房间领导者吗?是的,对不起,当我尝试嵌入图像时,StackOverflow只允许我嵌入链接。我猜声誉不够。也是的,这是由房间领导者提供的。哦,这确实有效,但可能会想进一步澄清(或者我只是不知道如何正确执行).所以我在脚本编辑器中尝试了这一点,当我点击“执行”按钮时,它确实起了作用。但我更希望它能在实际的工作表中工作,因为它将从移动设备上运行。这是可以做到的吗?还是我必须采用不同的方法?我添加了输出工作表解决方案just now。我刚才给了你一些选项。但是你可以看到代码几乎是一样的。你需要注意的唯一一件事是确保输出值数组和输出域大小必须相同。你可以通过将输出范围设置为输出值数组的维度来做到这一点。@BrianSuk I添加了几种不同的方式来显示数据。两种方式使用对话框,两种方式使用表格。希望其中一种方式接近您的需要。啊,太棒了,您关于插入其他表格的建议可能会是赢家,这将是一个机会!不过,还有一个问题,有没有办法也包括格式?何时函数替换数据它似乎总是重置格式,并且有很多颜色和文本格式。是否有应用程序脚本函数(或一组函数)这可能会有帮助吗?是的,你可以通过应用程序脚本设置格式。请查看此处。我必须承认,这不是我通常关心的事情,因此我不会对其进行太多处理。如果数据可读且可绘制图表,那么这对我来说就足够了。但你可能想问另一个问题,让其他人参与解决方案离子。
function dispSummary()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('RoomInfo');
var rng=sht.getDataRange();
var rngA=rng.getValues();
var s='<style>.ttl{color:blue;}</style><table>';
for(var i=1;i<rngA.length;i++)
{
if(rngA[i][6]=='Yes')
{
s+='<tr><td>' + '<span class="ttl">' + rngA[0][0] + '</span>' + ' = ' + rngA[i][0] + '</td><td>' + '<span class="ttl">' + rngA[0][4] + '</span>' + ' = ' + rngA[i][4] + '</td><td>' + '<span class="ttl">' + rngA[0][3] + '</span>' + ' = ' + rngA[i][3] + '</td></tr>';
}
}
s+='</table>';
var html=HtmlService.createHtmlOutput(s).setWidth(600).setHeight(500);
SpreadsheetApp.getUi().showModelessDialog(html, 'Values Found')
}
function dispSummary()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('RoomInfo');
var rng=sht.getDataRange();
var rngA=rng.getValues();
var sumsht = ss.getSheetByName('Summary')
var sumA = [];
for(var i=1;i<rngA.length;i++)
{
if(rngA[i][6]=='Yes')
{
sumA.push( [rngA[0][0],rngA[i][0],rngA[0][4],rngA[i][4],rngA[0][3],rngA[i][3]]);
}
}
var sumrng = sumsht.getRange(1,1,sumA.length,sumA[0].length);
sumrng.setValues(sumA);
}
function dispSummary()
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sht=ss.getSheetByName('RoomInfo');
var rng=sht.getDataRange();
var rngA=rng.getValues();
var sumsht = ss.getSheetByName('Summary')
var sumA = [];
sumA.push( [rngA[0][0],rngA[0][4],rngA[0][3]]);
for(var i=1;i<rngA.length;i++)
{
if(rngA[i][6]=='Yes')
{
sumA.push( [rngA[i][0],rngA[i][4],rngA[i][3]]);
}
}
var sumrng = sumsht.getRange(1,1,sumA.length,sumA[0].length);
sumrng.setValues(sumA);
sumsht.activate();//you could add this if you want to go to the summary sheet immediately after the script completes.
}