【GAS】スプシをGoogleDriveに保存して更新処理
0
納品書など、複数ファイル(ワークブック単位)で管理したい場合があると思います。
やり方としてはimportrangeを使うのが一般的です。
ただ数が多い場合にはかなりの作業時間を必要とします。
なので通常シート名で検索して指定する部分をフォルダID、ファイルID、シートIDをうまく分けて処理します。
function create(fileName) {
// GoogleDrive上の任意のフォルダのIDを取ってくる(下記のhogehogeの部分)
// https://drive.google.com/drive/u/0/folders/hogehoge
const FOLDER_ID = 'hogehoge';
// マイドライブにファイル名を指定してシートを作る
var id = SpreadsheetApp.create(fileName).getId();
// ファイルを移動するためにIDからファイル情報を取得
var file = DriveApp.getFileById(id);
// 移動先のフォルダを指定
var folder = DriveApp.getFolderById(FOLDER_ID);
// 既に該当ファイル名があればそれを使う
var fileItr = folder.getFilesByName(fileName);
if (fileItr.hasNext()) {
var fileId = fileItr.next().getId()
return SpreadsheetApp.openById(fileId)
}
// なければ新規作成してファイルを移動(コピーして削除)
folder.addFile(file);
DriveApp.getRootFolder().removeFile(file);
return SpreadsheetApp.openById(id)
}
このあとはお好きなようにシートに更新処理をかけるだけです!
const fileName = "テストファイル"
const values = [["aaa", "AAA"],["bbb", "BBB"]];
sheet = create(fileName).getSheetByName("シート1");
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
0