CSVhelperを使用して複数の.csvファイルをディレクトリから1つの.csvファイルにマージしようとすると、ディレクトリには50個の.csvファイルがあり、50個のファイルの中にファイル構造の2つのセットがあります.1つは7つの列と1つのファイル構造です。すべてのファイルは全く同じ最初の5つのヘッダーを持っていますが、ファイルによっては最後の2つの列変化する。 csvfile内のフォーマット1のCSVhelperを使用して異なるヘッダーを持つCSVファイルをマージするC#
ディレクトリ内のすべてのファイルは、列の異なるデータをこれらの構造のいずれかを保持します。新しいファイルの出力には、アクション、コード、およびエラーメッセージのすべての列バーのデータがあります。私が例1の構造だけでファイルを使用すると、ファイルは完全に一緒になります。 `IEnumerableをdataRecordは= reader.GetRecords():この行で
An unhandled exception of type 'CsvHelper.TypeConversion.CsvTypeConverterException' occurred in CsvHelper.dll
:私は両方の構造を持つファイルが含まれており、私の新しいファイルの例2から「ErrorIPAddress」を試してみて、使用している場合しかし、私は次のエラーを取得します。 ToList();
私の質問は、1つのファイルの列を他のファイルに使用する方法ですか?私はそれを次のようにマッピングしようとしました:Map(m => m.ErrorIPAddress).Index(5);
と私はこれが問題を引き起こしていると私は考えていますが、明らかに私が新しい.csvに必要なデータを得ることはできません。私が試みて、名前でマップすると:Map(m => m.ErrorIPAddress).Name("ErrorIPAddress");
ErrorIPAddressが.csvファイルにないというエラーメッセージが表示されますが、すべてのファイルにその列があるわけではありません。
最後の列は、あなたが外部ライブラリを必要としない形式2.
異なるCSV形式を読み込む問題と、異なるデータセットをマージする方法の問題を区別することをお勧めします。 CSVファイルを読み込むには、2つのメソッドを作成します。これらのメソッドのそれぞれは、1種類のCSVだけを読み込む責任があります。 (CSVのマージはこれらの2つの方法の一部ではありません)。各CSVファイルについて、1つの方法でそれを読んでみてください。この方法が失敗した場合は、2番目の方法でそれを読んでみてください。関連するCSVファイルを読んでいる場合は、要件に応じてデータセットをマージする別の方法(実装する必要があります)を使用してください。 – elgonzo
結果のマージされたCSVにはどのような列形式が必要ですか? – robaudas
@robaudas私は質問に追加しました。この列は、例2のErrorIPaddressの単純なカウントによって生成されます。 – johnfish92