前提・実現したいこと
Googleドライブのフォルダの中身をスプレッドシートに反映させたいと思っています。
スプレッドシートには
・リンクのついたファイル名(A列に記載)
・更新日(B列に記載)
タイトルを名前順に並び替えたいのですが、
上手くできません。
エラーは出ないのですが、
並び替えのプログラムが反映されません。
試したこと
上手くできなかったので、
①フォルダの中身をスプレッドシートに反映させるプログラム
②名前順にするプログラム
2つに分けて、やってみたものの上と同様にうまくできませんでした。
ただ、①を手動で実行したのち、②を手動で実行するとうまくできました。
どちらも自動でできるようにしたいのですが、良い方法ございませんでしょうか。
発生している問題・エラーメッセージ
エラーメッセージはありません。
該当のソースコード
①フォルダの中身をスプレッドシートに反映させるプログラム
function getFileListInFolder() {
var folder_id = '1cP6b_-l●●0C_R5K●●';
var url = 'https://drive.google.com/drive/folders/' + folder_id, // URL of Google Drive folder.
paths = url.split('/'), // Separate URL into an array of strings by separating the string into substrings.
folderId = paths[paths.length - 1], // Get a last element of paths array.
folder = DriveApp.getFolderById(folderId),
files = folder.getFiles(),
list = [],
rowIndex = 1, // The starting row of a range.
colIndex = 1, // The starting row of a column.
ss, sheet,range,
sheetName = '1';
ss = SpreadsheetApp.getActive(); sheet = ss.getSheetByName(sheetName);
var num;
var lastRow = sheet.getLastRow();
var lastCol = sheet.getLastColumn();
num = 1;
// Creating a data array from a files iterator.
// Note: Latest file is the first.
while(files.hasNext()) {
var buff = files.next();
var url = buff.getUrl();
var name = buff.getName();
var hyperlink = '=Hyperlink("'+url+'","'+name+'")';
// sheet.getRange(num, 1).setFormula(hyperlink);
// list.push([buff.getName(),buff.getLastUpdated()]);
list.push([hyperlink,buff.getLastUpdated()]);
num = num + 1;
};
// folder.getFiles()では、ファイルは新しいものが最初に来ます
// 登録された順にしたいので、reverse() で調整します
list = list.reverse()
range = sheet.getRange(rowIndex, colIndex, list.length, list[0].length);
// 対象の範囲にまとめて書き出します
range.setValues(list);
}
②名前順にするプログラム
function sheetsort() {
var ss,sht,rng
ss = SpreadsheetApp.getActiveSpreadsheet();
sht = ss.getSheetByName("1");
rng = sht.getRange("A1:A20");
//1列目を降順に
rng.sort(1);
}
③ ①と②を実行するプログラム
function myFunction() {
getFileListInFolder();
sheetsort();
}
③を実行したのですが、並び替えができません。
A列にリンクのついたファイル名、B列に更新日の記載はあります。
上記方法を教えてください。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。