[英]How to copy the value of one sheet to another sheet Google sheets Script
[英]Google Sheets combine several sheets into one sheet with script
我需要用腳本將幾張紙組合成一張紙。 此外,在組合工作表時,我需要通過將它們的名稱檢查為兩列來將它們分開。 例如,包含單詞“cat”的工作表應該在左列,包含單詞“dog”的工作表應該在右列。 目前,我有一個腳本,可以將具有特定單詞的所有工作表過濾到一個數組中。 我是 Google 表格的新手,任何幫助將不勝感激。
這是我當前的腳本:
function myFunction()
{
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = activeSpreadsheet.getSheetByName("AllSheets");
if (newSheet != null) {
activeSpreadsheet.deleteSheet(newSheet);
}
newSheet = activeSpreadsheet.insertSheet();
newSheet.setName("AllSheets");
const ss = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = ss.getSheets();
const allSheets_names=allSheets.map(sheet=>sheet.getSheetName())
const neededSheets= ["Cat", "Dog"];
const filteredListOfSheetsNames = []
neededSheets.forEach(ns =>allSheets_names.forEach( (as,index) =>
{if (as.indexOf(ns)>-1){filteredListOfSheetsNames.push(as)}}))
const filteredListOfSheets = filteredListOfSheetsNames.map(name =>ss.getSheetByName(name))
}
樣本:
function myFunction()
{
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = activeSpreadsheet.getSheetByName("AllSheets");
if (newSheet != null) {
activeSpreadsheet.deleteSheet(newSheet);
}
newSheet = activeSpreadsheet.insertSheet();
newSheet.setName("AllSheets");
const ss = SpreadsheetApp.getActiveSpreadsheet();
const allSheets = ss.getSheets();
const allSheets_names=allSheets.map(sheet=>sheet.getSheetName())
const neededSheets= ["Cat", "Dog"];
const filteredListOfSheetsNames = [];
neededSheets.forEach(function(ns){
var i = neededSheets.indexOf(ns);
filteredListOfSheetsNames[i]=[];
allSheets_names.forEach( (as,index) => {
if (as.indexOf(ns)>-1){
filteredListOfSheetsNames[i].push(as);
}
}
)
const filteredListOfSheets = filteredListOfSheetsNames[i].map(name =>ss.getSheetByName(name));
var array = [];
filteredListOfSheets.forEach(function(sheet){var values = sheet.getRange(1,1,sheet.getLastRow(),13).getValues(); array.push(values);});
array = [].concat.apply([],array);
if(array.length > 0){
newSheet.getRange(1,i*13+1, array.length, array[0].length).setValues(array);
}
}
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.