前提・実現したいこと
GAS(Google Apps Script) に触れて日の浅い初心者です。
おそらくめちゃくちゃなスクリプトですが、、
スプレッドシートの自動作成、加えてそのシートにGoogleDrive上のcsvファイルを
自動で読み込むスクリプトを作成しようとしているのですが、エラーが出てしまいます。
32行目の .next(); 部分がよくないのかと思うのですが、
nextメソッドについて理解できていないまま参考にしたページのコピペでやっているので
どのようにすべきかわかりません・・。
ご教示いただけると嬉しいです。
参考にしたページ:
https://qiita.com/chihirot0109/items/d78ec1a6d14783545c32
発生している問題・エラーメッセージ
Exception: Cannot retrieve the next object: iterator has reached the end. CreateNewSpreadSheet @ コード.gs:32
該当のソースコード
1// 実行日の日付を取得 2function getNowYearMonth(){ 3 const formatDate = Utilities.formatDate(new Date(), "JST","yyyyMM"); 4 return(formatDate); 5} 6console.log(getNowYearMonth()); 7 8// スプレッドシートの新規作成 9function CreateNewSpreadSheet() { 10 //【手順1】新規スプレッドシートをマイドライブに作成する 11 const ss = SpreadsheetApp.create(`ファイル名_${getNowYearMonth()}`).getId(); 12 13 /*addFile,removeFileメソッドのパラメータはFileオブジェクトを指定するため、 14 【手順1】で作成したスプレッドシートをFileオブジェクトとして取得する */ 15 const file = DriveApp.getFileById(ss); 16 17 //【手順2】手順1で作成したスプレッドシートを指定フォルダに「追加」する 18 const folderId = 'フォルダID'; 19 DriveApp.getFolderById(folderId).addFile(file); 20 21 //【手順3】手順1で作成したスプレッドシートをマイドライブから「削除」する 22 DriveApp.getRootFolder().removeFile(file); 23 24 console.log(ss); // スプレッドシートIDの確認 25 26 // 作成したスプレッドシートを取得 27 const sheet = SpreadsheetApp.openById(ss); 28 console.log(sheet.getName()); // アクティブなスプレッドシートのファイル名の確認 29 30 const csvFolderId = "csvのフォルダID"; 31 DriveApp.getFolderById(csvFolderId); 32 const csvFile = DriveApp.getFilesByName(`csvファイル名_${getNowYearMonth}.csv`).next(); 33 const csvData = Utilities.parseCsv(csvFile.getBlob().getDataAsString()); 34 sheet.getRange(1,1,csv.length,csv[0].length).setValues(csvData); 35 36};
補足情報(FW/ツールのバージョンなど)
業務利用のGoogleWorkspaceを利用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/01 14:54
2021/08/02 10:57
2021/08/02 10:58