【GAS】Googleドライブ・フォルダ内のすべてのCSVファイルを読み込む

コピペでできるGAS

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】CSVファイルをローカル(パソコン)に出力する方法(Gスプレッドシート)
  • ワンクリックでCSVファイルをローカル(パソコン)にダウンロードすることができます。
  • さらにダウンロードしたファイルをExcelで開いても文字化けしていません。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • Googleドライブのフォルダ内のファイル名を取得する方法がわかります。
    • CSVファイルを読み込む方法がわかります。

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    準備中

    シートはこちら

    準備中
    *クリックすることでシートが開きます。

    スクリプト

    /**
     * フォルダ内のすべてのCSVファイルをシートに出力する
     * (ファオルダ内にCSVファイル以外の場合は未対応)
     */
    function ReadCsvFromFolder() {
      const FOLDER_ID = 'フォルダID' //★フォルダID
    
      // 「csv」フォルダを取得
      const folder = DriveApp.getFolderById(FOLDER_ID)
      const files = folder.getFiles()
    
    
      // アクティブなスプレッドシートを取得
      const ss = SpreadsheetApp.getActiveSpreadsheet()
    
      //フォルダのループ
      while (files.hasNext()) {
        const file = files.next()
        const fileId = file.getId()
    
    
        //ファイル名の取得
        let fname = file.getName()
        console.log(fname)
    
    
        // CSVファイルを取得
        const blob = DriveApp.getFileById(fileId).getBlob()
    
    
        // CSVデータをUTF-8エンコーディングで読み込む
        // const csv = blob.getDataAsString('SJIS')
        const csv = blob.getDataAsString('utf-8')
    
    
        // CSVデータが空でないか確認
        if (csv.trim() === "") {
          console.log("CSVデータが空です。")
          continue
        }
    
    
        const values = Utilities.parseCsv(csv)
        console.log(values)
    
    
        if (values.length > 0) {
          let newsh = ss.insertSheet(fname) //ファイル名をシート名にしてシートを作成
          newsh.getRange(1, 1, values.length, values[0].length).setValues(values)
          console.log(values.length)  //行数
        }
      }
    }

    ポイント

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】締切日に応じてリマインダーを送る方法(サンプル付き)
  • 締切日に応じて3種類のリマインダーを送ることができます。
  • GASって何?状態であっても設定できます。
  • GAS応用の一覧

    参考

    GASでGoogle Driveに取り込んだCSVファイルをスプレッドシートに自動転記する(文字化けの解消も含む)

    コメント

    タイトルとURLをコピーしました