如何创建一个脚本来合并另一个表中的几个表?

问题描述 投票:-1回答:2

对不起我的英语,这不是我的力量!

我正在为一个负责培训课程的非政府组织工作。

我们有一个google工作表,在不同的电子表格中逐个编译每个培训日参与者的数据。

所以我的年度文档由30个电子表格组成。我想再创建一个电子表格,它将合并来自其他标签的所有数据,以便: - 能够快速查看谁还没有支付他的账单 - 计算总金额

我知道我可以通过使用过滤器功能来实现它,但是对于这么多的电子表格来说它真的非常耗时,如果我添加一个训练课程,我将不得不改变公式。而且,我每年都会被迫这样做。

所以我想创建一个按钮来导入新电子表格中的所有数据。

您将在此处找到仅包含2个电子表格的工作表示例:https://docs.google.com/spreadsheets/d/1-RxzUGJFXnU3_mJ3Qj0MCTpwPTlnmgIT439AchyrRrE/edit?usp=sharing

我希望你能帮助我!

谢谢,新年快乐:D

google-apps-script google-sheets
2个回答
0
投票

Merging Sheets in another sheet in same spreadsheet.

您将需要名为“CopiDdeFCCE”的电子表格的ID,其他参数将默认为“CopieDdeFCCE”。

function mergeSpreadsheet(ssid,shname){
  var shname=shname || 'CopieDdeFCCE';
  var ss=SpreadsheetApp.openById(ssid);//id of spreadsheet named 'CopieDdeFCCE' in your case
  var sh=ss.getSheetByName(shname);//sheetname of sheet where other sheets are merged into again in your case its named 'CopieDdeFCCE'
  if(!sht){ss.insertSheet(shname);}
  var allshts=ss.getSheets();
  for(var i=0;i<allshts.length;i++){
    if(allshts[i].getName()!=shname){//do this for all sheets except shname
      var shi=allshts[i];
      var rg=shi.getDataRange();
      var vA=rg.getValues();
      shi.getRange(sh.getLastRow() + 1, 1,shi.getLastRow(),shi.getLastColumn()).setValues(vA);
    }
  }
}

只是为了清楚。

  • Google称之为电子表格的文件是包含所有标签(即表格)的文件。
  • 在您的第一个评论中,您说了以下内容:我想将名为“CopieDdeFCCE”的所有28张文件合并到同一文件的新工作表中。
  • 但现在在你的问题中你说:我想创建一个按钮来导入新电子表格中的所有数据。
  • 您在上次评论中声明您的命令如下所示:mergeSpreadsheet(“1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E”,“CopieDdeFFCE”)
  • 但很明显,这不是示例的ID,并且该示例没有具有该名称的工作表。

所以我的问题是:你究竟想要什么?


0
投票

很抱歉,我没有收到任何回复通知,因为这是一个编辑,当我来看看你是否写了一些东西时,我看了一下网站的底部。 :/

首先,新年快乐,再次感谢您的帮助!

以下是您提出的精确度:

1°实际上,我想将名为“CopieDdeFCCE”的所有28张文件合并到同一文件的新工作表中。为了更准确,我给你链接文件的确切位置和一些表格的例子:link

2°其次,我将创建一个按钮,轻松更新所有数据。但我想我知道该怎么做,所以暂时忘记这个问题;)

3°在我附上的文件中,我们是否同意“id”是:1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E ??

再次感谢您的所有时间!

© www.soinside.com 2019 - 2024. All rights reserved.