見出し画像

【そのまま使える】Google Apps ScriptでCSVファイルをスプレッドシートにインポートする

こんにちは!KCompany代表のケータです!

本日はGASでCSVアップロード機能をつけ加えたスプレッドシートのご紹介をします!
もし使ってみたいという方がいらっしゃったら、ページの最後の部分をご確認いただければ幸いです。

Google Apps ScriptでスプレッドシートにCSVファイルのアップロード機能を追加した背景

スプレッドシートにCSVファイルをアップロードするだけなら、スプレッドシートのデフォルトの機能を使えば良いのではないか?と思うかもしれません。確かに単にCSVファイルをそのままアップするだけなら、それで大丈夫です。開発したスプレッドシートの紹介の前に、スプレッドシートデフォルトの機能を使ったCSVファイルのインポート方法を改めて確認してみます。

スプレッドシートでCSVファイルをインポートする方法

「メニュー>インポート」を実行する
「アップロード>デバイスのファイルを選択」を実行する
インポート場所やその他の選択肢を選び、「データをインポート」を実行する
インポート実行後の画面。

動画のスクリーンショットものせておきます。

スプレッドシートでCSVファイルをインポートする場合の問題点

既にお気づきの方もいるかもしれません。そうです、この方法にはいくつかの課題があります。
例えば、インポートするだけなら上記の方法で良いのですが、実際にCSVファイルをインポートする場合、データの整形をしたり他のシートと連携をさせるといったことが念頭にある場合が多いのではないでしょうか。この場合、CSVインポート後に手動なのかマクロなのかまたはGASなのか何かしらの方法で手を加える必要があります。
また、とあるファイルをインポートしたものの、何らかデータ修正が入り、該当ファイルを再度上げ直したいといった場合もあります。その場合、再び整形作業などを行う必要があります。
また、日次や週次など一定周期で取得したCSVファイルを一つのシートに集約したいといった場合もあります。この場合も、わざわざインポート後に手を加えるといった必要がでてきます。

まとめると、結構めんどくさい、ということです。

GASでスプレッドシートにCSVファイルをアップロードする機能を追加する

今回ご紹介させて頂くGASは、まさに上記のような状況に出くわしていたとある教育機関の方からの依頼のものを、一部抜粋して紹介するものです。
①「英語」と「数学」という二種類(複数)の教科で毎週授業とテストがある。
②テストについては、オンラインツールで生徒が回答し、そのCSVファイルをローカルPCにダウンロードしている。
③CSVファイルをスプレッドシートにアップロードしたい。アップロード用のフォームにファイルを送ると、アップロード完了後に「英語」「数学」それぞれの集計シートに毎週の集計結果が集約されるようにしたい。
④CSVファイルの中身を反映するだけでなく、全教科の生徒の成績を反映したマスターデータ(今回の記事では割愛)へ反映できるように識別ID等も反映する。
といった内容です。

Google Apps ScriptでCSVファイルのアップロード機能を追加したスプレッドシートのご紹介

GASでCSVファイルのアップロード機能を追加したスプレッドシートの画面イメージ

下記がまだデータが何も反映されていないシートになります。予め「英語」「数学」のシートを手動で作成し、カスタムメニューからCSVアップロードを実行します。

初期画面

CSVアップロードのウィンドウが開いたら、CSVファイルを選択します(サンプルとなるCSVファイルは後述するGoogleドライブのものを参照ください)。

CSVアップロード画面

アップロードを実行すると、CSVファイルとGAS内で定義した列と数式が反映されます。今回反映される列は以下の画像の通りです。

初回アップロード後の様子

第2週目のデータもアップしてみます。先程と同じ手順でCSVファイルをアップします。すると、下記のように第2週目のデータがアップされます。

第2週目のデータをアップロード

ここで先程反映した第1週目の元データに修正が加わった場合を考えてみます。この場合は、先程のメニューから修正済みの第1週目のCSVファイルをアップロードします。すると、元々のデータを削除し、新しいデータを挿入してくれます。

第1週目の修正データをアップロード

動画のスクリーンショットものせておきます。

注意点

今回のファイルは「英語小テスト_1週目.csv」「数学小テスト_1週目.csv」といったように①「英語」か「数学」、②第何週か、の文字列が含まれるファイルを対象にしています。この部分を修正する場合は、スクリプトエディタで下記の部分の修正が必要となります。
科目(ファイル)名を変更するだけなら、「メニュー>拡張機能>Apps Script」からスクリプトエディタを開き、下記の部分の修正で大丈夫です(ご利用にあたって不明な点がある場合はお問合せください)。

Google Apps ScriptでCSVファイルをスプレッドシートにインポートすスクリプトを実際に使うには

ここまで読んでくださって、実際に使ってみたい!という方がいらっしゃいましたら、以下からぜひご利用いただければ幸いです。閲覧用のファイルを用意してますので、そちらをコピーし、ご自身の環境にてご利用いただくイメージになります。

もしくは、下記のメルマガ登録を頂ければ、特典として閲覧用のファイルを共有させて頂きます。

【お仕事のご依頼について】

こちらの記事に記載した内容以外にも、Google Apps Script開発やGoogle Workspaceを活用したデジタル化推進のお仕事を行っています。【GAS】そのまま使えるシリーズのカスタマイズのご相談ももちろん大丈夫です。
ちょっとしたお困りごとでも、こちらのサイトのお問い合わせフォームからご連絡いただければ、折り返しご連絡いたします。

Google Apps ScriptでCSVファイルをスプレッドシートにインポートすスクリプトのアクセスについて


ここから先は

154字

¥ 980

よろしければサポートをお願いします!いただいたサポートは、サービス開発・改善のために使わせていただきます。主に書籍代や勉強会の参加費用などを想定しています。よろしくお願いします。