一つの 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);
}