Google 表格 - 循环通过表格合并数据

Posted

技术标签:

【中文标题】Google 表格 - 循环通过表格合并数据【英文标题】:Google Sheets - Loop through Sheets consolidating data 【发布时间】:2017-05-17 10:30:17 【问题描述】:

我在谷歌中循环浏览工作表后得到了一些帮助。

场景 - 我有大约 20 个布局相同的选项卡,我需要从所有选项卡中收集信息并将其放入 1 个主工作表中。 数据从第 2 行(标题)开始,长度可变(如果需要,结束列是 "Z" 列)

代码可以创建一个新选项卡来放置所有数据,也可以创建一个特定选项卡。

(可能需要考虑到我不需要包含一些表格 - 我可以定义这些)

在excel中这将是一个简单的 创建新选项卡(称为摘要) 循环浏览选项卡 如果选项卡名称不在我的例外列表中,则在工作表上复制范围(动态范围) 将范围放在“摘要”选项卡上的下一个可用行上 重复直到完成

任何帮助表示赞赏

【问题讨论】:

【参考方案1】:

万一其他人有类似的问题,我设法自己编写了一些代码(可能不是最快的,但它可以完成工作)

function LoopSheetsMergeData()
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
var destsheet = ss.getSheetByName("Summary");//MasterSheet To Merge To
var StartRow = 4//StartRow on all tabs
var StartCol = 1//AllData starts in Column 1  
var EndCol = 26//End Column of all data  
for (var s in allsheets)
    var sheet=allsheets[s]
    if (sheet.getName() == "Summary") //Disregard certain tabs
          
    
    else
        
var EndRow = sheet.getLastRow();
var copyRng = sheet.getRange(StartRow,StartCol,EndRow,EndCol);
var destlastRow = destsheet.getLastRow();
var nextRow = destlastRow +1 
var shtname = sheet.getName(); 
copyRng.copyTo(destsheet.getRange(nextRow,2));//Row and Column of where to paste the information  
var newLastRow = destsheet.getLastRow();//New last Row after pasting the data
destsheet.getRange(nextRow,1,newLastRow,1).setValue(shtname&&newLastRow);//Insert into column 1 for each row copied the name of the sheet it came from      
    
  //end of  sheets loop.
// end of function...

【讨论】:

以上是关于Google 表格 - 循环通过表格合并数据的主要内容,如果未能解决你的问题,请参考以下文章

LaTeX表格tabular合并多行、多列

iview表格行/列合并

如何把多个表格合并为一个表格

如何将EXCEL表格中的同一列有相同的内容 合并成一个单元格?

excel多个表格合并成一个工作表的方法

表格怎么把一样的内容合并