CSVファイルから一部を抜き出し表示するには?

解決


JOE  2008-12-09 04:04:25  No: 141028

Excel形式のCSVファイルからA、B、C列の、それぞれ330行までのセルのなかみを抜き出してテキストボックスに表示するにはどうしたらよいでしょか?

どうかよろしくお願いします。

ちなみにファイルのなかみは、列がA〜HHまで、行がそれぞれ330まであります。


やじゅ  2008-12-09 04:36:21  No: 141029

CSVファイル読み込み@VB.Net
http://www.cocoaliz.com/vb.net/index/25/

A、B、C列なら、col値は3つまで、テキストボックスには
項目値を文字列連結して出すなどすればいいんじゃないの


魔界の仮面弁士  2008-12-09 05:43:03  No: 141030

> A、B、C列の、それぞれ330行までのセルのなかみを抜き出して
330 行の制限は、ループ処理の際にカウントしていけば済むかと思います。

> テキストボックスに表示するにはどうしたらよいでしょか
一つのテキストボックスに、複数行のデータを(改行等で区切って)入れるのでしょうか?
それとも、330行×3列分の 1000 個近いテキストボックスがあるのでしょうか?

後者だとしたら、その画面仕様は見直したほうが良いでしょう。テキストボックスのかわりに、
VB.NET ならば DataGridView (2002/2003 では DataGrid)、
VB6 ならば MSHFlexGrid などに表示させることをお奨めします。

> Excel形式のCSVファイルから
Excel 形式の CSV というと、

(1) 各フィールドは「,」で区切られる。
(2) 文字コードは(日本語環境では)Shift_JISとなる。
(3) 各レコードの末尾には [CRLF] が付与される(レコード間に付与されるわけではない)。
(4) フィールドの両端は「"」で囲まない事が望ましい(囲っても良い)。
(5) データ中に[改行]["][,]が含まれる場合は、フィールドの両端を「"」で囲む。
(6) データ中の[改行]は、[LF]で表現される。

という仕様ですね。

VB2005/2008/2010 の場合は、OpenTextFieldParser メソッドを利用できます。
(これに関しては、やじゅさんがリンクを貼ってくださっていますね)

一方 VB6 の場合は、自力解析するしか無いかと思います。
データ中に[改行]["][,]が無い事が保証されるなら、Line Input # 等で処理できますが、
そうしたデータが含まれる場合は、VB6 の機能だけでは簡単には処理できないので…。
(Excel VBA であれば、OpenText メソッドを併用するという手法が使えます)


JOE  2008-12-11 22:50:40  No: 141031

返事遅くなってすいません。

やじゅさん、魔界の仮面弁士さん、色々助言ありがとうございます。

なんとか解決できました。
本当にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加