# 前提・実現したいこと
AWS S3に保存しているCSVファイルをgoogle スプレッドシートに出力できないかと考えています。
以前の質問内容にもありますが、用いたデータは下記のようなCSVファイルです。
このようなデータが1日1~2件ほどs3のバケットに (年-月-日-時間.csv) の名前で保存、蓄積されていきます。
これらをすべて上から順にスプレッドシートに出力したいのですが、解決策が浮かびません。
現在はGASを調べつつ作業していて、名前を指定したファイルのみ一件をシートに出力することは成功しています。
スプレッドシートからS3へのPUTはweb上に参考資料が多いですが、GETの操作が乏しいため投稿した次第です。
以前の質問内容はご意見を参考に解決することができました。ありがとうございます。
S3内のcsvファイル
1, *****, 2020/09/25, 15:11, 101, 62, 82, 65, 36.44
データは左から
1(フラグ用で不変),個人名,日付,時間,最高血圧,最低血圧,平均血圧,心拍数,体温
ソースコード
GAS
1 2function getS3File() { 3 // S3の接続情報 4 var awsAccessKeyId = ""; 5 var awsSecretKey = ""; 6 var s3baket = ""; 7 var s3File = "test.csv"; 8 9 //グーグルのドライブの保存先フォルダID 10 var folderId = ""; 11 12 // S3に接続してファイルをGET 13 var s3 = S3.getInstance(awsAccessKeyId, awsSecretKey); 14 var fromS3 = s3.getObject(s3baket, s3File); 15 16 // ドライブに保存 17 var destfolder = DriveApp.getFolderById(folderId ); 18 var file = destfolder.createFile(fromS3); 19 dataImport(file); 20} 21 22// CSVファイルのシートへの書き出し 23function dataImport( file ) { 24 var data = file.getBlob().getDataAsString("utf8"); 25 var newDataList = Utilities.parseCsv(data, '\,'); 26 27 //書き込む対象のSpread Sheetを定義 28 var ss = SpreadsheetApp.getActiveSpreadsheet(); 29 var sh = ss.getActiveSheet(); 30 var lastRow = sh.getDataRange().getLastRow(); 31 32 // データの出力 33 sh.getRange(1, 1, newDataList.length, newDataList[0].length).setValues(newDataList); 34} 35 36
使用ライブラリ等
ライブラリキー:MB4837UymyETXyn8cv3fNXZc9ncYTrHL9 バージョン4
詳細 : https://engetc.com/projects/amazon-s3-api-binding-for-google-apps-script/
マニフェストファイルのoauthscopes
"https://www.googleapis.com/auth/spreadsheets.currentonly",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/drive"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。