当前位置: 首页 > 知识库问答 >
问题:

如何使用Google应用程序脚本在Google电子表格中合并多个选项卡?

慕容聪
2023-03-14

如何使用Google应用程序脚本在Google电子表格中合并多个选项卡?所有选项卡中的数据都在不断变化。

例如,我在谷歌电子表格中有“Sheet1”、“Sheet2”和“Sheet3”。所有这些表中的数据都有3列-名称和电子邮件ID

共有3个答案

曾山
2023-03-14

你可以使用谷歌应用脚本。

var ss = SpreadsheetApp.getActiveSpreadsheet();
function TotalsSheet() {
  var totaldata = [];
  var sheets = ss.getSheets();
  var totalSheets = 2;

  for (var i=0; i < totalSheets; i++) {
    var sheet = sheets[i];
    var range = sheet.getDataRange();
    var values = range.getValues();

    for (var row in values) {
      totaldata.push(values[row]);
    }
  }
  return totaldata; 
}

function Start() {
  var All = ss.insertSheet("All-Values");
  var totaldata = TotalsSheet();
  for (var i = 0; i < totaldata.length; i++) {
    All.appendRow(totaldata[i]);
  } 
}
姜卜霸
2023-03-14

这不需要脚本。在第四页中,在A2中输入以下公式:

={filter(Sheet1!A2:C, len(Sheet1!A2:A)); filter(Sheet2!A2:C, len(Sheet2!A2:A)); filter(Sheet3!A2:C, len(Sheet3!A2:A))}

它返回A-C列的内容,其中A列中的条目为非空,并将它们堆叠在一个数组中。

金阳曜
2023-03-14

=查询({Sheet1!A1: C; Sheet2!A1: C; Sheet3!A1: C},"其中Col1不是null",0)

我不会用脚本来做这个;工作表公式要快得多,至少在大多数情况下是如此。确保使用分号分隔范围。分号是数组文字的行运算符的结尾。

如果你真的想使用脚本。。。

function combineSheets() {
  var sApp = SpreadsheetApp.getActiveSpreadsheet();
  var s1= sApp.getSheetByName("Sheet1");
  var s2= sApp.getSheetByName("Sheet2");
  var s3= sApp.getSheetByName("Sheet3");
  var s4= sApp.getSheetByName("Sheet4");
  //  If Sheet4 doesn't exist you'll need to create it here.
  
  var s1values = s1.getRange(1,1,s1.getLastRow(),3).getValues();
  var s2values = s2.getRange(1,1,s2.getLastRow(),3).getValues();
  var s3values = s3.getRange(1,1,s3.getLastRow(),3).getValues();
  
  //  Now, we can put out all together and stuff it in Sheet4
  var s4values = [];
  s4values =  s1values.concat(s2values,s3values);
  s4.getRange(1,1,s4values.length,3).setValues(s4values);
}
 类似资料:
  • 我试图应用一个脚本,将在整个谷歌工作表电子表格上运行,而不仅仅是一个标签。我有多个选项卡都具有相同的格式;我希望脚本查看每个选项卡在F列中的数据验证,如果为任何行选择了“不适用”,则将整行的内容移动到一个名为“不适用项”的选项卡" 我没有编写脚本的经验,所以我从一个论坛主题中复制了我目前使用的脚本。它成功地将行移动到正确的选项卡,但仅限于指定的活动工作表。我希望脚本查看整个电子表格,并移动标记为“

  • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

  • 我有一个谷歌电子表格,其中有3张表格,包含来自不同国家的数据(,,),还有第4张表格()。所有图纸中的列都相同。 我已经知道我可以这样组合它们: 然而,我需要一种方法将任意数量的纸张组合在一起,而不需要修改公式。所以,如果添加了Country4,也应该追加。我怎么能那样做? 如果有帮助,我有一个工作表,其中有一列包含所有国家的名称(因此也包括国家工作表名称)。我有一个脚本,如果在工作表中添加了一个

  • 我使用Google SpreadSheet附加组件制作Google Analytics(分析)报表。我的问题是,对于每个查询,这个附加组件都会创建不同的工作表。我经常有大约50张不同的表格,其中的数据必须编译成一张表格。例如: 我可能有三张表格,分别是:“有机数据”、“直接数据”和“其他数据” 每个工作表都有一组不同的数据,我想在第四个工作表“Report”中将它们编译成一个表。该表的第一列数据来

  • 把所有信息写到电子表格中。 删除唯一的标记信息以防止重复运行。 然后使用form mule addon从电子表格发送电子邮件。 到目前为止,我已经处理了第1步(简单),而第2步和第3步(我不是一个编码器,我可以读、解串和黑。从头开始写是完全不同的事情)。我以前处理过4次,我认为这是最好的处理方法。 通过脚本,我将信息提取到电子表格中,通过插件,我使用电子表格中的信息发送电子邮件。 这是我到目前为止

  • 我很难找到将多张工作表同步到主电子表格的方法。在我的测试中,我有一个大的电子表格,上面有5个城市的地址。我正在尝试为每个城市创建一个电子表格,并能够在任何一个表格中更改数据时同步数据。因此,我将管理总体数据,5张电子表格中的每一张都将分配给其他人。这样,他们就可以在不访问所有数据的情况下更新工作表。使用内置查询或导入功能的问题是,如果用户在“城市”电子表格上进行更改,它将破坏该表格,因为数据被引用