フォルダ内のファイル数を取得し、新規に作成するファイル名に利用する
▽目的
GASでExcelファイルをスプレッドシートファイルに変換するスクリプトを作成しました。スプレッドシート名に通し番号を付けるため、フォルダ内に存在するファイル数を取得してファイル名に利用しようとしたのですが、うまくいきません。
▽結果
・スプレッドシートへの変換は問題なく完了します。
・スプレッドシートの文頭部分がNaNと表示されてしまいます。該当箇所はコード最終行の「ss.rename(numFiles + "_" + filename);」で、numFilesに数字が入ってほしいのですが、NaNと記載されてしまします。
・そもそも実行トランスクリプトを確認すると、途中の Logger.log(numFiles);で、undefinedと表示されています。
▽サンプルコード
//Excelファイルをスプレッドシートに変換し、renameする
function convertXls2SS(){
var srcFolder = DriveApp.getFolderById(****); //Excelファイル格納フォルダ
var aftFolder = DriveApp.getFolderById(****); //スプレッドシート格納フォルダ
var files = srcFolder.getFilesByType(MimeType.MICROSOFT_EXCEL);
//スプレッドシート格納フォルダ内のファイル数取得
var ssFiles = aftFolder.getFiles();
var numFiles = ssFiles.length;
Logger.log(numFiles);
// var files = srcFolder.searchFiles('mimeType='+'"application/vnd.ms-excel"');
while(files.hasNext()){
//ファイル数をカウントアップ
numFiles++;
//変換前のExcelをスプレッドシートに変換する
var file = files.next();
var res = Drive.Files.insert({
"mimeType": MimeType.GOOGLE_SHEETS,
"parents": [{id: ****}],
"title": file.getName()
}, DriveApp.getFileById(file.getId()).getBlob());
//シート名を変える
var ss = SpreadsheetApp.openById(res.id);
ss.rename(numFiles + "_" + filename);
以上です。お力お貸しいただけますと幸いです。