CSVを読み込んで処理しているのですが
エクセルの仕様のせいか一番長いレコードに項目数が
調整されUboundで正確な値がとれません。
(例)
a,b,c,d, , , ,
1,2,3,4,5,6,7,8 ←列数が一番長いものに調整される
a,b, , , , , ,
1, ,3,4, , ,7,
処理としては5項目以上入っていたらそのレコードをエラーとして
出力したいのですが,エクセルからCSVを作成して保存した場合
仮に7項目入っているレコードがあれば全レコードが7項目と
して判断されエラーが返ってきました。
この場合は地道にコードで処理するしかないでしょうか。
Replace等を使用しながら・・
まず、はじめに、エクセルからCSVを作成して保存した場合
このような場合、事前に項目数や文字列が調整されることを考慮して、
CSVファイルの出力仕様を決めます。
1行目の何処の項目には何が入る。などなど
そう言った仕様を事前に決めておかないと、読み込み側で、地味に苦労します。
仕事で使っているのであれば設計書やファイルフォーマットがあるでしょうし
個人で作成している分には、決めてしまえばいいのです。
ツイート | ![]() |