一つの Google spread sheet を複数のシートに分割するには?

function splitSheetIntoRows(sourceSheetName, numRowsPerSheet) {
  var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sourceSheetName);
  if (!sourceSheet) {
    throw new Error("指定されたシートが見つかりませんでした。");
  }
  
  var lastRow = sourceSheet.getLastRow();
  var sourceData = sourceSheet.getRange(1, 1, lastRow, sourceSheet.getLastColumn()).getValues();
  
  for (var i = 0; i < lastRow; i += numRowsPerSheet) {
    var numRows = Math.min(numRowsPerSheet, lastRow - i);
  // sheet 名の設定
    var newSheetName = sourceSheetName + "_" + (i + 1) + "-" + (i + numRows);
    var newSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(newSheetName);
    newSheet.getRange(1, 1, numRows, sourceSheet.getLastColumn()).setValues(sourceData.slice(i, i + numRows));
  }
}

function main() {
  var sourceSheetName = "ALL"; // 分割元のシート名をここに指定
  var numRowsPerSheet = 25; // 分割する行数をここに指定
  splitSheetIntoRows(sourceSheetName, numRowsPerSheet);
}

 

© 2024 Falco Tech Blog Suffusion theme by Sayontan Sinha