.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. VB.NET
  5. VB.NETでCSV出力する方法とは?CSV出力をしてみよう

VB.NETでCSV出力する方法とは?CSV出力をしてみよう

  • VB.NET
  • プログラミング言語
公開日時:   更新日時:
VB.NETでCSV出力する方法とは?CSV出力をしてみよう
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    CSV出力する方法には、どのようなものがありますか?

    プロジェクト
    マネージャー
    ここではVB.NETを利用したCSV出力について見ていきましょう。

    VB.NETでCSV出力をする方法とは?


    今回は、VB.NETでCSV出力を行う方法について紹介します。

    CSVとはComma Separated Valueの略で、カンマで区切ったテキストファイルデータのことを表します。ファイルの拡張子は「csv」であり、データ交換用のファイルとして知られています。基幹システムに取り込んだり、BIツールで分析したりするうえで便利な形式のファイルです。

    VB.NETで作られたアプリにおいても、DataTableやリストなどに格納されている情報をCSV出力したい場面があるでしょう。VB.NETでもCSV出力をすることが可能です。この記事では出力方法を紹介しますので、興味のある方はぜひご覧ください。

    VB.NETでCSV出力をする方法


    はじめに、DataTableに格納されているリスト情報をCSV出力するVB.NETのサンプルプログラムをご紹介します。以下の社員リストをCSV出力してみます。

    サンプルプログラム

    社員リストと、リストをCSV出力するVB.NETのサンプルプログラムです。書き込むファイルを開いてから、ヘッダー部分を出力し、続いて明細レコードを出力しています。

    社員リスト

    CSV出力する社員リストです。社員コード、氏名、部署、年齢、役職の情報が社員リスト用のDataTableにセットされていると仮定し、8名分のリストを用意しました。

    社員コード 氏名 部署 年齢 役職
    0001 社員01 総務部 45 部長
    0002 社員02 営業部 43 部長
    0003 社員03 人事部 41 課長
    0004 社員04 IT部 40 係長
    0005 社員05 マーケティング部 38 課長
    0006 社員06 製造部 33 一般
    0007 社員07 人事部 29 主任
    0008 社員08 IT部 25 一般

    ソースコード

    実行結果

    CnvDataTableToCsvメソッドの引数に、社員リストのDataTable変数、CSV出力先のパス・ファイル名、ヘッダー出力=Trueをそれぞれ指定し、プログラムを実行すると、下記のデータがCSVファイルへと出力されます。

    “社員コード”,”氏名”,”部署”,”年齢”,”役職”
    “0001”,”社員01″,”総務部”,”45″,”部長”
    “0002”,”社員02″,”営業部”,”45″,”部長”
    “0003”,”社員03″,”人事部”,”45″,”課長”
    “0004”,”社員04″,”IT部”,”45″,”係長”
    “0005”,”社員05″,”マーケティング部”,”38″,”課長”
    “0006”,”社員06″,”製造部”,”33″,”一般”
    “0007”,”社員07″,”人事部”,”29″,”主任”
    “0008”,”社員08″,”IT部”,”25″,”一般”

    サンプルプログラムの解説

    VB.NETにおいてCSVファイルを書き込むには、System.IO.StreamWriterクラスを使用します。


    第1引数のpathは、ファイルのパスとファイル名を指定するString型の引数です。

    第2引数のappendはBoolean型の引数で、ファイルへの追加、もしくはファイルの上書きを指定します。Trueの場合は既存のファイルに対して行追加を、Falseの場合は既存のファイルに対し新しいファイルとして上書きを行います。

    第3引数のencodingは文字コードの設定を行うSystem.Text.Encoding型の引数で、上記サンプルプログラムでは文字コード「Shift_JIS」で出力するため、


    のように、取得したShift_JISのエンコーディングを第3引数に指定しています。

    System.IO.StreamWriterクラスで書き込むファイルを開いた後は、CSVの見出しを出力し、レコード情報を書き込みしています。書き込みはSystem.IO.StreamWriterクラスのWriteメソッドを用いて行います。

    書き込む際に各項目を、作成したEncloseDoubleQuotesメソッドを用いてダブルクォーテーションで囲み、最終列を除いてカンマを付与し、最終列になったら改行を行います。改行はWriteメソッドの引数に改行文字列vbCrLfを指定して実現しています。

    最後に、Closeメソッドを用いて解放処理をします。解放を行わないと内部的なメモリが使用されたままの状態になり、処理が遅くなる要因になります。Closeメソッドの記述がなくてもプログラムは動作してしまいますので、処理の最後に忘れずにCloseメソッドを記述しましょう。

    システム
    エンジニア
    最後の解放処理を忘れると大変ですね。

    プロジェクト
    マネージャー
    そうですね。全体の処理速度が遅くなる原因になります。またエンコード処理を忘れると文字化けの原因にもなります。

    VB.NETでCSV出力をしてみよう!


    いかがだったでしょうか?VB.NETでCSV出力をする方法を紹介しました。

    VB.NETではカンマ付与、ダブルクォーテーションを囲む処理を施し、System.IO.StreamWriterクラスでデータをファイルに書き込むことで、CSV出力をすることが可能です。

    今回DataTableをCSV出力する方法を紹介しましたように、例えばフォームに表示したリストの一覧をCSV出力することなどができます。

    基幹システムに登録されたデータをBIツールなどで活用する場面でもCSVは有効になりますので、VB.NETでCSVを出力する機会がありましたら、ぜひこの記事を参考にしてみてください。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job