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

コピペでできるGAS

GAS応用の一覧

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

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

 

今回は、とっても価値の高い方法をお伝えします。


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

  • 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をコピーしました