DXブログ

TOP > DXソリューション > DXブログ

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

🐻‍❄️

島田
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.png

■CsvUploadプロシージャー
ファイルのオープン

🐼

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

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

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

🐼

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

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

■CsvUploadプロシージャー
ファイルの中身の読み込み_ver02

🐼

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

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

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

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

■CSVの内容
CSV中身
■CSVファイルのアップロードの結果
商品リスト結果画面

🐼

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

おわりに

🐻‍❄️

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

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

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

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