2017-12-24 3 views
0

CSVファイルを書き込むときは、特定の列のみを引用する必要があります。 CsvHelper 6.1.0を使用すると、個々にフィールドを構成する方法はありますか?CsvHelperを使用して特定のCSVフィールドに引用符を書く

"引用" フィールド1、フィールド2、フィールド3、フィールド4、フィールド5、Field6 は、 "引用"、NotQuoted、NotQuoted、NotQuoted、 "引用符で囲まれた" は "引用"、 "引用"、NotQuoted、NotQuoted、NotQuoted、 "Quoted"

これまでのところ、構成オブジェクトでQuoteAllFieldsとQuoteNoFieldsしか見つかりませんでした。

+0

...引用符に置きますが、それはそう単純なもののためにあまりにも多くの仕事のように思えるTypeConverterを実装するだろうか? StreamWriterクラスを使用して書き込む方がよい。文字列outputline = string.Join( "、" new string [] {colA、colB、colC、colD});を使用してcsv行を作成できます。 writer.Writeline(出力ライン); – jdweng

+0

@jdweng表示する必要はないかなりの作業が行われています。フィールド単位で見積もりを構成するかどうか、またどのように構成するかを学ぶだけで済みます。 –

+0

CSVHelperでできるかどうかわかりません。 Net Libraryメソッドでは非常に簡単です。 – jdweng

答えて

0

Class Mappingを使用してください。

クラスを自動マッピングすることから始めて、引用符で囲みたいフィールドを編集することができます。このような何か:

public sealed class MyClassMap : ClassMap<MyClass> { 
    public MyClassMap() { 
     AutoMap(); 
     Map(m => m.Field1).ConvertUsing(m => $"\"{m.Field1}\""); 
     Map(m => m.Field2).ConvertUsing(m => $"\"{m.Field2}\""); 
     Map(m => m.Field6).ConvertUsing(m => $"\"{m.Field6}\""); 
    } 
} 

あなたがそうのようなファイル書いているとき、あなたはそれを適用:

CsvWriter myWriter = new CsvWriter(stream); 
myWriter.Configuration.RegisterClassMap<MyClassMap>(); 

を私はこれはこれを行うには「正しい」方法であれば全くわからないんだけど、しかし、それは確かに最も単純なようです。あなたなぜあなたは非常に単純なCSVファイルを書き込むことがCsvHelperを使用している

関連する問題