33
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Apps ScriptでCSVファイルをGoogleスプレッドシートにインポートする

Last updated at Posted at 2017-12-19

#はじめに

CSVの形式でデータをエクスポートすることが多いので、そのデータを整理しやすくするためにスプレッドシートにインポートしてしまおう!ということで調べてみました。

同じような記事はいくつかあるのですが、自分なりにまとめようと思います。

##Googleアカウント

タイトル通りGoogleAppsScriptを使うのでGoogleのアカウントが必要です。
ない場合はあらかじめ作っておきましょう。

また、今回はGoogleDrive内にあるCSVファイルをスプレッドシートにインポートするので
GoogleDriveとGoogleスプレッドシートを使えるようにしておきましょう。

#事前準備
まずは、書き込む先のスプレッドシートを用意します。
新しいスプレッドシートを作成し任意のタイトルをつけてGoogleDriveに保存します。

このときGoogleDrive内にフォルダも作ってしまいましょう。

次に、スプレッドーシートに書き込むCSVファイルをエクセルで適当に作りましょう。
この作ったCSVファイルはGoogleDrive内に作成したフォルダの中にアップロードします。

##コード
ここまでの準備が完了したら、コードを書いていきます。

スプレッドシートを開き、ツールバー内にあるツールからスクリプトエディタを開きます。
するとコードを書き込めるエディタが出てきます。
そこに以下のようなコードを書き込みます。

csv_import_1.gs
//書き込む対象のSpread Sheetを定義
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();

function import() {
  
  // 対象のCSVファイルが置かれているフォルダ名、ファイル名を定義
  var folderName = "テスト";
  var fileName = "test.csv";
  var folders = DriveApp.getFoldersByName(folderName);
  
  //フォルダとファイルの検索
  while (folders.hasNext()) {
    var folder = folders.next();
    if (folder.getName() == folderName) {
      var files = DriveApp.getFilesByName(fileName);
      while (files.hasNext()) {
        var file = files.next();
        if (file.getName() == fileName) {
          
          //設定しないでShift_JISのままだと文字化けする
          var data = file.getBlob().getDataAsString("Shift_JIS"); 
          
          var csv = Utilities.parseCsv(data);
          
          //セルA1からCSVの内容を書き込んでいく
          sh.getRange(1,1,csv.length,csv[0].length).setValues(csv);
          return;
        }
      }
    }
  }
}

GoogleDrive内にあるCSVを探して対象のスプレッドシートに書き込むだけなのですが
対象のスプレッドシートからエディタを起動したので、定義が簡単になっています。

コメントに書いていないコードの詳細は各自調べてもらうといくらでも出てくると思います。

##実行
エディタの上のほうにあるデバッグボタンでデバッグすることができその左のボタンで実行することができます。
実行ボタンを押したあとスプレッドシートを見に行くと、CSVファイルの内容がそのまま書き込まれていると思います。

##最後に
今回はGoogleDrive内にあるCSVファイルをGoogleDrive内のスプレッドシートに書き込んでみましたが、ローカルの中にあるCSVファイルをスプレッドシートに書き込むこともできるみたいです。

以上でこの記事を終わりにしたいと思います。

33
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?