0

SuperCsv を使用して、さまざまなソースからの連絡先 csv ファイルを処理しています。列数は同じでファイルにヘッダがあるのでCsvBeanReaderを使いたい。

異なるソースには異なる列とヘッダー タイトルがあり、ヘッダーで識別された列の数に基づいて cellProcessors 配列を動的に構築しています。

SuperCsvException で数時間苦労していましたが、プロセッサの数と一部の特定のファイルとの間に不一致がありました。これらのファイルはすべて、Google メールの連絡先アプリケーションからの csv エクスポートであり、これらのファイルのデータ行が役に立たないコンマで終わっていることに気付きましたヘッダー行がありますがありません。

この時点で最初の SuperCsvException をキャッチし、余分なセル プロセッサを追加することで問題を解決しましたが、この最後のコンマが他の種類の csv ファイルに存在するかどうか、および superCsv に CsvBeanReader の能力を維持できるオプションがあるかどうか疑問に思っていました。この最後のコンマの柔軟性のために。

4

1 に答える 1

0

CsvListReader.Read()を使用して文字列値のリストを取得することを検討します。リストの長さによって何をすべきかがわかっている場合はUtil.executeCellProcessors()、文字列のリストと cellprocessors を入力として受け取る を使用してプロセッサの配列を適用できます。

于 2015-01-27T20:00:21.093 に答える