@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

CSV加工について

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2005/08/05
投稿数: 76
投稿日時: 2005-12-06 17:13
お世話になります。
.NETではないですが、どこに書いていいかわからずここに書き込みしてしまい
申し訳ありません。

VB6.0でエクセルファイルからCSVファイルへのデータ変換(加工含む)を
行いたいと思っております。

その際、元データとなるエクセルファイル側には
項目として、「空データ」「社員番号」「苗字」「名前」
という順番に社員数分、並んでいるとします。
これを、ただCSVに変換するだけであれば簡単ですが
社員一人につき、CSV1ファイルという形にしたいのです。

そして、作成されるCSVファイルのファイル名を「社員番号.csv」としたいのです。
また、csvデータのほうは、

1,""
2,「苗字」
3,「名前」

といった並びにしたいと思います。
空データは空文字列として入れます。

これが全体の仕様なのですが
このなかで、社員番号をCSVのファイル名にしたものを
社員数分出力する、というのをどうやればいいのかわかりません。
ご教授よろしくお願い致します。
ミソジマエ
常連さん
会議室デビュー日: 2005/09/25
投稿数: 43
投稿日時: 2005-12-06 17:33
行毎にファイル名を社員番号.csvにしてファイルのOPEN、CLOSEをすればいいだけだと思うのですが?
そういうことではないんでしょうか?
未記入X
大ベテラン
会議室デビュー日: 2005/05/19
投稿数: 136
投稿日時: 2005-12-06 17:36
引用:

これが全体の仕様なのですが
このなかで、社員番号をCSVのファイル名にしたものを
社員数分出力する、というのをどうやればいいのかわかりません。
ご教授よろしくお願い致します。



実現したい動作について、もう少し分割してみてはいかがでしょう?
不明な点がはっきりとするかもしれません。

机上の空論で申し訳ないのですが、例えば
 1)XLSファイルから、社員一人分のデータを抽出する部分
 2)抽出した社員番号等を利用して「社員番号.csv」という名のファイルを作成する部分 
 3) 1、2を社員数分繰り返す部分
とかで。もう少し適切な分け方があると思いますが、例ということでご容赦を。

どこまでできて、どこから分からないかを整理することが解決の近道になると思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-07 01:33
引用:

未記入さんの書き込み (2005-12-06 17:13) より:

このなかで、社員番号をCSVのファイル名にしたものを
社員数分出力する、というのをどうやればいいのかわかりません。


それ以外は、お判りになられているとのことですので少しだけ。

「CSV のファイル名にしたもの」までをメソッド化し、それを社員数分出力すれば良いですよね。
社員数分は読み取った行数ですよね。

さほど問題にはならないと思いますが... 何か問題となることがあるのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2005/08/05
投稿数: 76
投稿日時: 2005-12-07 14:23
皆様、ありがとうございます。
おかげで、目的達成できることができそうです。

今度は逆のことがしたいのですが、CSVファイルから
エクセルファイルに変換したいのです。

その際、つまずいているのがCSVファイルのほうのデータが

1,a
2,b
3,c

と言った具合に、改行がされているのです。
上記のようなCSVファイルを
a b c
という風にエクセルシートに並べたいのです。
a,b,c
とCSVにしても構いません。

現在、

******************************************

SplData = Split(LineData(i), ",")

'変数に区切ったデータを代入していく。
'それをもとにデータ加工する。
F01 = SplData(0)
F02 = SplData(1)
F03 = SplData(2)

*******************************************

上記のような記述をしていますが
カンマ区切りでやろうとしてるので改行のところで
インデックスが有効な範囲にありません
というエラーが出てしまいます。

このような場合、どうすれば良いでしょうか。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2005-12-07 14:53
引用:

インデックスが有効な範囲にありません
というエラーが出てしまいます。


自分が何をしているのか理解してますか?
2列しかないのに、3列目なんてとれなくて当然でしょう。
引用:

このような場合、どうすれば良いでしょうか。


2列3行の配列を作ってから3列2行の配列に変換する、これですむと思いますが。

[ メッセージ編集済み 編集者: Edosson 編集日時 2005-12-07 14:54 ]
1

スキルアップ/キャリアアップ(JOB@IT)