スプレッドシートの作成
Google Apps Script(GAS)で新しくスプレッドシートを作成する方法です。
サンプルプログラム
function sample1() {
// カレントフォルダの取得
// ※ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■の部分はスプレッドシートを作成したいフォルダIDに置き換えてください。
const folder = createNewSpreadsheet("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■", "新しいスプレッドシート");
Logger.log(folder);
}
/**
* 新しいスプレッドシートを作成
* @param {String} スプレッドシートを作成するフォルダID
* @param {String} 作成するスプレッドシート名
*/
function createNewSpreadsheet(folderId, fileName) {
// スプレッドシートを作成
const newSpreadsheet = SpreadsheetApp.create(fileName);
// 作成したスプレッドシートのIDを取得
const spreadsheetId = newSpreadsheet.getId();
// 指定したフォルダへ作成したスプレッドシートを移動
moveFile(folderId, spreadsheetId);
}
/**
* ファイルの移動
* @param {String} 移動先のフォルダID
* @param {String} 移動させるファイルID
*/
function moveFile(folderId, fileId) {
// 移動させるファイルのDriveApp.Fileオブジェクトを取得
const file = DriveApp.getFileById(fileId);
// 指定したフォルダへファイルを追加
DriveApp.getFolderById(folderId).addFile(file);
// 移動元のファイルの親フォルダを取得
const currentFolder = getCurrentFolder(file);
// 移動元のファイルを削除
currentFolder.removeFile(file);
}
/**
* カレントフォルダを取得
* @param {DriveApp.File} ファイル
* @return {DriveApp.Folder} フォルダ
*/
function getCurrentFolder(file) {
// 親フォルダを取得
const parentFolder = file.getParents();
// 取得したフォルダを返却
return parentFolder.next();
}
解説
Google Apps Script(GAS)ではフォルダを指定してファイルを作成することができません。そのため、一度マイドライブへファイルを作成し、指定したフォルダへ移動する処理を行っています。
ファイルを移動する処理については以下を参照してください。
移動元のファイルを削除する場合は、ファイルのフォルダ情報が必要となるためカレントフォルダを取得するメソッドも使用しています。詳細は以下を参照してください。
上記では汎用性を持たせるため、メソッドにしています。