【Ruby入門】CSVの基本と操作
  • facebookページ
  • twitterページ
  • 2017.11.02

    【Ruby入門】CSVの基本と操作

    あるシステムから別のシステムへデータを送ることはよくあります。同じサーバー内にあれば問題ないのですが、別のサーバーや異なる会社間であれば大変です。

    開発言語やフレームワーク、データベース製品が異なることもあれば、OSからちがうことは普通にあります。しかしどんな開発言語、フレームワーク、OSであれ、物理ファイルくらいは操作できますので、システム間でデータを受け渡しするときはこれを使わない手はありません。

    また物理ファイルに書く内容も、お互いでルール決めをしておくと大変使いやすく便利です。

    本記事では、システム間連携において非常によく使われるCSVについて解説します。

    CSVとは何か?

    CSVとは、データをカンマ区切りにして、ファイルに保存したものです。

    CSVの正式名称はComma Separated Valueの略ですので、名前からもカンマ区切りであることがもうかがえます。

    CSVはRubyに限らず、一般的によく使われているファイル形式です。

    ExcelでもCSV形式で保存することができますし、家計簿ソフトや年賀状ソフトにおけるデータのインポート・エクスポートでもCSVはよく使われています。

    何らかのWebサービスにおいても「CSVで出力」というボタンがついているのを見かけます。

    カード会社のサービスにて、利用情報をExcelに取り込むときに使えます。

    「・・・そういえば何か見たことがあるような気が?」と思われた方も多いことでしょう。

    CSVの具体的な内容

    イメージしやすいように、Rubyでのあつかいを解説する前に、Excelだけで解説を完結してみます。

    まずはExcelの表形式で、生徒の点数表を例にして解説します。

    以下のようなデータがあったとしましょう。ファイル名を「点数表.xlsx」とします。

    「ファイル」「名前を付けて保存」を選択し、保存ダイアログを開きます。ここでファイル形式を「CSV(コンマ区切り)(.csv)」してください。

    エラーダイアログが開いたりいろいろしますが、気にせず保存です。

    ファイル名を指定しないかぎり、Excelのファイル名+.csvでファイルができます。

    メモ帳やNotepad、お好みのテキストエディタでそのファイルを開いてください。

    いかがでしょうか?CSVという名前どおり、カンマ区切りでファイルが保存されたのが分かりましたね。

    実際のシステム間連携では、1つめのデータが何で、2つめが何で・・・と事前に合意をとるので、通常は一番上の項目名はCSVファイルに出力しません。

    CSVファイルから読み込む(パース)

    CSVファイルからデータを読み込みましょう。全行を一度に読み込み方法と、1行づつ読み込む方法があります。

    全行を一度に読み込む

    上記で使用した点数表.csvを使います。

    データを読み込んでカンマごとでデータを取り出して・・・という解析をパースといいます。

    ではCSVをパースしてみます。

    [実行結果]

    1行1行が配列になっているのが分かります。もちろん要素番号を指定することも可能です。

    [実行結果]

    配列の要素番号は0からです。1を指定すれば2行目を指定することになるので注意してください。

    1行づつ読み込む

    今度は1行づつ読み込む方法です。

    [実行結果]

    同じ結果が得られました。

    1行づつ何かの処理をしたいときには便利ですね。

    注意:

    環境によってはExcelからShift_JIS形式でファイル出力されてしまい、Rubyで読み込み時にエラーが発生します。その場合はお手持ちのエディターでエンコードをUTF-8に変換してください。

    CSVファイルを書き出す

    先ほどとは逆に、CSVファイルを書き出す方法を解説します。

    先ほど出た結果をそのまま、点数表2.csvという名前で書き出してみました。

    CSVクラスのopenメソッドに、第一引数にファイル名、第二引数にモードを指定して書き込むことができました。

    まとめ

    本記事ではCSVファイルとは何か、その基本的なあつかい方を解説しました。

    CSVライブラリにはもっとたくさんの機能があります。詳しくはこちらをご覧いただき、CSVの効率的なあつかい方を探してみてくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE