どうも。つじけ(tsujikenzo)です。このシリーズでは 「Googleドライブのファイル名を一括変換しよう」 について、全3回でご紹介します。今日は第2回目です。
前回のおさらい
前回は、フォルダから、ファイルIDとファイル名を取得して、スプレッドシートに貼り付けしました。
今回は、「変換用ファイル名をスプレッドシートで準備しよう」 をお届けします。
スプレッドシートの準備
まず、スプレッドシートで作業します。
前回入力したデータは使いませんので、値を全削除しましょう。
見出し行を作成しよう
1行目に、このように見出し行を作成します。
各列は、このような値に対応します。
列 | タイトル | 内容 |
---|---|---|
A列 | ファイルID | ファイルID |
B列 | 元ファイル名 | ファイル名 |
C列 | 変更後ファイル名 | 変更後のファイル名 |
D列 | 前に足す | 元ファイル名の前に足す文字列 |
E列 | 元ファイル名 | 元ファイル名 |
F列 | 後ろに足す | 元ファイル名の後ろに足す文字列 |
G列 | 拡張子 | ファイルの拡張子 |
見出し行を準備したら、1回目で作成したコードを実行します。
実行するさいに、貼り付ける先のセルが変更になっていますので、修正しましょう。
//スプレッドシートに貼り付ける
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange(2, 1, fileArray.length, fileArray[0].length); //2行目から開始
range.setValues(fileArray);
このように貼り付けできたらOKです。
セルに式を挿入する
【C列】D列以降の文字列を連結させるために、式を挿入します。
【E列】変更後のファイル名に、元ファイル名を使用するばあいは、E列に式[=B列]を挿入します。
【D・F列】前・後ろに足す文字列を入力します。不要なら空白セルでも問題ありません。
【G列】拡張子は必ず付けましょう。画像のばあいは.pngや.jpgですが、必ず元ファイルから拡張子を調べましょう。
C列に、変更後のファイル名のリストができました。
GASの準備
ここからは、スクリプトエディタで作業します。
変更後のファイル名を取得する
C列を取得し、1次元配列に格納します。
//変更後のファイル名を2次元配列に格納する
const lastLow = sheet.getLastRow();
const renames = sheet.getRange(2, 1, lastLow - 1, 3).getValues();
console.log(renames);
このように、ログ出力できていればOKです。
今回はここまでです。
本日までのコード全文はこちらです。
function myFunction() {
//フォルダからファイルを取得する
const folder = DriveApp.getFolderById('FOLDER ID');
const files = folder.getFiles();
const fileArray = [];
//2次元配列の作成
while (files.hasNext()) {
const file = files.next();
const id = file.getId();
const name = file.getName().replace(/\..+$/, "");
fileArray.push([id, name]);
}
//スプレッドシートに貼り付ける
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange(2, 1, fileArray.length, fileArray[0].length);
range.setValues(fileArray);
//変更後のファイル名を2次元配列に格納する
const lastLow = sheet.getLastRow();
const renames = sheet.getRange(2, 1, lastLow - 1, 3).getValues();
console.log(renames);
}
まとめ
以上で、変換用のファイル名をスプレッドシートで準備しました。
GASで1次元配列にも格納できたので、次回はいよいよ変換作業を行います。
次回は、「ファイル名を変換しよう」 についてお届けします。