CsvHelperって、C#でCSVの読み書きをするには非常に便利なんですが、イマイチ情報が足りない気がしています。
ConfigurationのPropertiesの設定情報はいつも調べるんですが、毎回google翻訳するのも面倒なので、翻訳したものを載せておきます。
コピペで使えるサンプルコードという近道
現場レベルのCsvHelperの実装サンプルを作りました。
CSVデータの取得から、入力チェック、モデル変換まで網羅しています。
5つのシステムで実証したコピペで使い回せる実装法
» 【CsvHelper マスター講座】を見る
こちらの記事もどうぞ
目次
Properties
AllowComments |
コメントが許可されるかどうかを示す値を取得または設定します。コメントアウトされた行を許可する場合はtrue、そうでない場合はfalse。 |
BadDataFound |
不正なフィールドデータが見つかったときに呼び出される関数を取得または設定します。フィールドに引用符が含まれていて、フィールドが引用符で囲まれていない(エスケープされている)場合、フィールドに不正なデータが含まれます。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:context |
BadDataFoundとCsvHelper.BadDataExceptionについて知りたい方は「CsvHelper BadDataFoundとは?」をどうぞ。 |
BufferSize |
CSVファイルの読み取りに使用されるバッファーのサイズを取得または設定します。デフォルトは2048です。 |
Comment |
コメントアウトされている行を示すために使用される文字を取得または設定します。デフォルトは「#」です。 |
CountBytes |
解析中にバイト数をカウントするかどうかを示す値を取得または設定します。デフォルトはfalseです。指定されたエンコーディングのすべての文字のバイトカウントを取得する必要があるため、解析が遅くなります。これを正確にするには、CsvHelper.Configuration.Configuration.Encodingを正しく設定する必要があります。 |
CultureInfo |
CSVファイルの書き込みに使用されるカルチャ情報を取得または設定します。デフォルトはSystem.Globalization.CultureInfo.CurrentCultureです。 |
Delimiter |
フィールドを区切るために使用される区切り文字を取得または設定します。デフォルトはCultureInfo.TextInfo.ListSeparatorです。 |
DetectColumnCountChanges |
列数の変化を検出する必要があるかどうかを示す値を取得または設定します。 trueの場合、異なる列数が検出されるとCsvHelper.BadDataExceptionがスローされます。 |
DetectColumnCountChangesとCsvHelper.BadDataExceptionについて知りたい方は「CsvHelper BadDataExceptionとは?」をどうぞ。 |
DoubleQuoteString |
現在構成されている2つのQuote文字の文字列表現を取得します。 |
DynamicPropertySort |
書き込み時に動的オブジェクトのプロパティの順序付けに使用される比較子を取得または設定します。デフォルトはnullで、オブジェクトプロパティが作成された順序が保持されます。 |
Encoding |
バイトをカウントするときに使用されるエンコーディングを取得または設定します。 |
Escape |
フィールド内の引用符をエスケープするために使用されるエスケープ文字を取得または設定します。デフォルトは「”」です。 |
GetConstructor |
コンストラクターマッピングに使用するコンストラクターを選択します。 |
HasHeaderRecord |
CSVファイルにヘッダーレコードがあるかどうかを示す値を取得または設定します。デフォルトはtrueです。 |
HeaderValidated |
ヘッダー検証チェックの実行時に呼び出される関数を取得または設定します。既定の関数は、特定のメンバーマッピングのヘッダーがない場合、CsvHelper.ValidationExceptionをスローします。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:isValid、headerNames、headerNameIndex、context |
IgnoreBlankLines |
読み取り時に空白行を無視するかどうかを示す値を取得または設定します。無視する場合はtrue、それ以外の場合はfalse。デフォルトはtrueです。 |
IgnoreQuotes |
解析時に引用符を無視し、他の文字と同様に扱うかどうかを示す値を取得または設定します。 |
IgnoreReferences |
自動マッピング時に参照を無視するかどうかを示す値を取得または設定します。参照を無視する場合はtrue、それ以外の場合はfalse。デフォルトはfalseです。 |
IncludePrivateMembers |
プライベートメンバーを読み書きするかどうかを示す値を取得または設定します。プライベートメンバーを含める場合はtrue、それ以外の場合はfalse。デフォルトはfalseです。 |
InjectionCharacters |
インジェクション攻撃に使用される文字を取得または設定します。 |
InjectionEscapeCharacter |
検出された注入をエスケープするために使用される文字を取得または設定します。 |
LineBreakInQuotedFieldIsBadData |
引用フィールドで見つかった改行を不良データと見なすべきかどうかを示す値を取得または設定します。改行の不良データを考慮する場合はtrue、そうでない場合はfalse。デフォルトはfalseです。 |
Maps |
設定されたCsvHelper.Configuration.ClassMap |
MemberTypes |
自動マッピング時に使用されるメンバータイプを取得または設定します。 MemberTypesはフラグであるため、複数選択できます。デフォルトはプロパティです。 |
MissingFieldFound |
不足しているフィールドが見つかったときに呼び出される関数を取得または設定します。デフォルトの関数はCsvHelper.MissingFieldExceptionをスローします。例外をスローする代わりに、問題をログに記録するなどの他のことを行う独自の関数を提供できます。引数:headerNames、index、context |
MissingFieldFoundとCsvHelper.MissingFieldExceptionについて知りたい方は「CsvHelper MissingFieldExceptionとは?」をどうぞ。 |
PrepareHeaderForMatch |
メンバー名と照合するヘッダーフィールドを準備します。ヘッダーフィールドとメンバー名は、両方ともこの関数を介して実行されます。トリミング、空白の削除、アンダースコアの削除、大文字と小文字を無視するための大文字と小文字の変更などを行う必要があります。 |
Quote |
フィールドを引用するために使用される文字を取得または設定します。デフォルトは「”」です。 |
QuoteString |
現在構成されている引用文字の文字列表現を取得します。 |
ReadingExceptionOccurred |
読み取り例外が発生したときに呼び出される関数を取得または設定します。デフォルトの関数は、指定された例外を再スローします。読み取り例外を無視する場合は、独自の関数を提供して、問題の記録などの他のことを行うことができます。引数:exception |
ReferenceHeaderPrefix |
参照ヘッダーのプレフィックスを返すコールバックを取得または設定します。引数:memberType、memberName |
SanitizeForInjection |
悪意のあるインジェクションを防ぐためにフィールドをサニタイズする必要があるかどうかを示す値を取得または設定します。これには、MS Excel、Googleスプレッドシート、およびOpen Office Calcが含まれます。 |
ShouldQuote |
書き込み時にフィールドを引用符で囲む必要があるかどうかを決定するために使用される関数を取得または設定します。引数:field、context |
ShouldSkipRecord |
指定されたレコードをスキップするかどうかを決定するために呼び出されるコールバックを取得または設定します。 |
ShouldUseConstructorParameters |
デフォルトのコンストラクターとメンバーの代わりに、コンストラクターパラメーターを使用してクラスを作成するかどうかを決定します。 |
TrimOptions |
フィールドのトリミングオプションを取得または設定します。 |
TypeConverterCache |
CsvHelper.Configuration.Configuration.TypeConverterOptionsCacheを取得または設定します。 |
TypeConverterOptionsCache |
CsvHelper.Configuration.Configuration.TypeConverterOptionsCacheを取得または設定します。 |
UseNewObjectForNullReferenceMembers |
参照メンバーがnullのときに新しいオブジェクトを作成する必要があるかどうかを書き込み中に示す値を取得または設定します。新しいオブジェクトを作成してフィールドのデフォルトを使用する場合はtrue、すべての参照メンバーのメンバーのフィールドを空のままにする場合はfalse |
編集後記
時間があるときに、使い方もどんどんアップしてきたいと思います。
CsvHelper Configurationの設定
CsvHelperって、C#でCSVの読み書きをするには非常に便利なんですが、イマイチ情報が足りない気がしています。 ConfigurationのPropertiesの設定情報はいつも調べるんで...
C# CsvHelperの使い方【現役プログラマーが伝授】
こんにちは、トミセン(@tomisenblog)です。 C#でCSVファイルの操作に便利なCsvHelperですが、 「CsvHelper って、全然情報無いから使えないよね。」 「CsvHelper って、...
こちらの記事も読まれています!