【Qs】GeneXusでのCSVデータの読み込みについてサムネイル画像

GeneXusでのCSVデータの読み込みについて

株式会社Q’sfix

島田 島田
GeneXus初心者の先輩の島田と

辛島 辛島
同じくGeneXus初心者の後輩の辛島です

島田 島田
今回はGeneXus初心者コンビでお届けします!

辛島 辛島
先輩、ソースの自動生成やレイアウトの簡単修正など、
GeneXus開発を始めてすでにその便利さを体感してきましたが、
先輩が最近学んだすごい機能とかありますか?

島田 島田
そうだな、最近学んだCSVデータの読み込みとかは、かなり便利な機能だったよ!

辛島 辛島
そんなことまでできるんですか!?ぜひ教えてください

島田 島田
じゃあさっそくソースを書きながら覚えていこう

CSVファイル選択画面の作成

島田 島田
今回はCSVデータを読み込んで、対象のテーブルにデータを追加・更新できる機能を実装してみよう。まずはCSVファイルをユーザーが選択する画面を作っていくよ!

島田 島田
画面のイメージはこんな感じで、ファイル追加からCSVファイルを選択して、実行ボタンを押すと商品テーブルにCSVデータが取り込まれるようにしてみよう

環境:GeneXus18、WorkWithPlus(WWP)使用

CSV読み込み用画面

辛島 辛島
ファイル追加からファイルを選択しただけでCSVデータが取得できるんですか?
自分では特にデータを格納するための変数とかSDTを用意してないですよ?

島田 島田
ファイル追加のボタンを設置するときに「User Control」の設定で「FileUpload」を選んだでしょ。これを選択すると自動的に「UploadedFiles」の名前で読み込んだCSVファイルを格納するためのコレクション変数が作成されるんだよ。
あとでこの変数は使うから覚えておいてね!
また、今回はCSVファイルのみを読み込む想定だから、「User Control Properties」で「Custom File Types」を「csv」に設定しよう

CSV読み取り用画面_patterns

UploadesFiles

■User Control Properties

ユーザーコントロールプロパティ

CSVファイルのオープン

島田 島田
CSVファイルを選択する画面は作成できたから、次は本題のCSVデータの読み込みについて学んでいこう!

島田 島田
先にCSVファイルの読み込み処理の流れを簡単に説明すると、

  1. ファイルを開く
  2. ファイルの中身の読み込み
  3. ファイルを閉じる

の流れで実施していくんだ。早速、ファイルを開くところからやってみよう!

<レクチャー中…>ファイル情報の取得_ver02

Webパネル_Variables

■CsvUploadプロシージャー

ファイルのオープン

辛島 辛島
早速さっき出てきた「UploadedFiles」を使いましたね!
これによって選択したCSVファイルを一つずつ開いていくんですね

島田 島田
その通り!そして開くために必要なファイルパスを取得して、この場合は「CsvUpload」プロシージャー内でファイルを開いているね

ファイルの読み込み~クローズ

辛島 辛島
ファイルを開いたら、いよいよファイルの読み込みですね!

島田 島田
読み込みから、テーブルへの追加・更新まで一気にやっていこう!

■CsvUploadプロシージャー

ファイルの中身の読み込み_ver02

プロシージャー_Variables

辛島 辛島
ヘッダー以外のデータを読み込んで、この場合だと、
すでに同じ商品IDのデータがあれば更新、なければ新規データとして追加されるんですね

島田 島田
ちなみに、項目ごとのデータを読み取るときは、その項目のタイプによって使用する関数が変わるから気を付けてね。「DFRGTxt」だと文字列の項目に使用するとか

辛島 辛島
そして、あとはエラーがなければコミット、あった場合はロールバックして、、
最後にファイルを閉じて、、ついに完成ですね!!

島田 島田
最後にデータがちゃんと登録されるか確認を忘れずに!

■CSVの内容

CSV中身

■CSVファイルのアップロードの結果

商品リスト結果画面

辛島 辛島
ちゃんと登録されてました!!

おわりに

島田 島田
実際に作ってみてどうだった?

辛島 辛島
手順も3つしかなくて、思ったよりも簡単でびっくりしました!

島田 島田
他にも、複数のテーブルに対して追加・更新をさせたり、追加・更新しようとしているデータが適切かエラーチェックを入れたりと色々とできるんだ!
今回のは一例だから、他の方法も学んでいきたいね!

辛島 辛島
面白そうですね!今後もお互いに学んだことを色々と共有させてください!

執筆者:株式会社Q’sfix

一覧ページへ戻る

CONTACT

システム開発やDXなど
ITソリューションについてもっと知りたい方はこちら

サービス・製品の詳細、スポーツやリハビリといった動作計測技術について
知りたい方やお困りの方はお気軽にお問い合わせください。