問題タブ [csvhelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CsvHelper.CsvWriter にヘッダーを手動で追加する
CsvHelperクラスを使用して行をDataTablecsv ファイルに書き込みます。コードは機能しますが、ヘッダーを書き込むことができません。
クラス マップを作成せずにヘッダーを手動で追加するにはどうすればよいですか?
c# - CSV 出力で特定のフィールドを常に引用するように CsvHelper を構成するにはどうすればよいですか?
CsvHelperパッケージを使用して C# モデルを Csv に書き込んでいます。流暢なクラス マップ (CsvClassMap から継承) を使用して、フィールドからプロパティへのマッピングを定義しています。
私が抱えている問題は、一部のプロパティ値が日付のように見えることです。たとえば、「2 - 4」です。これらの CSV を表示するには、エンド ユーザーが Excel を使用することを期待しています。これらの値を日付として表示したくないので、CsvHelper でこのフィールドを引用符で囲みたいと考えています。ただし、引用符で囲まれたこのフィールドのみが必要です。解釈したいデータ (日付など) を含むその他のフィールドがあります。このフィールドを引用符で囲む必要があることを指定するようにマッピングを構成できますか? 型コンバーターを使用して遊んだことがありますが、これは明らかに間違ったアプローチです。これは VALUE を変換していて、フィールドのフォーマット方法を指示していないためです。
c# - CsvHelper を使用して、CSV からすべての値をリストに読み込みます
だから私は自分のCSVリーダー/ライターを書くべきではないことを読んでいたので、nuget経由でインストールされたCsvHelperライブラリを使用しようとしていました. CSV ファイルはグレースケール画像で、行数が画像の高さ、列数が幅になります。List<string>値を行単位で単一のorに読み込みたいと思いますList<byte>。
私がこれまでに持っているコードは次のとおりです。
しかしallValues.ToList<string>()、投げている:
CsvConfigurationException はユーザー コードによって処理されませんでした
タイプ 'CsvHelper.Configuration.CsvConfigurationException' の例外が CsvHelper.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: IEnumerable を継承する型は自動マップできません。レコードのリストに作用する GetRecords または WriteRecords を呼び出す代わりに、単一のレコードに作用する GetRecord または WriteRecord を誤って呼び出しましたか?
GetRecordsおそらく私自身のカスタムクラスを期待していますが、値をプリミティブ型または文字列として求めているだけです。また、各値が個別の文字列ではなく、行全体が単一の文字列に変換されていると思われます。
c# - CSVReader は、文字列型フィールドへのマッピング中に、数値/一般フィールドのテキストを空の文字列として読み取ります
数値/一般タイプの csv フィールドにテキスト コンテンツがあります。ではCSVClassMap、フィールドを文字列にマップしています。このため、この CSV フィールドを空の文字列として読み取ります。以下のようにcsvレコードを読んでいます
私のCSVClassMapコードは以下です
CSV フィールドがマップされる私のクラスは以下のとおりです。
CSV フィールドCredential(一般型または数値型) の内容をそのまま csv リーダーで読み取り、自分で検証を行うという考え方です。EmployerCredential要件により、C# フィールドを文字列ではなく整数に変更できません。数値型または一般型であっても、CSV リーダーがCredentialフィールドの内容をスキップしないようにして、文字列フィールドにマップするにはどうすればよいEmployerCredentialですか? 例: CredentialCSV のフィールドは Numeric 型で、コンテンツはmy sample text. EmployerCredentialテキストコンテンツが数値型のcsvフィールドから来ているという事実を無視して、これを.netフィールドに保存するにはどうすればよいですか。
さらに調査した結果、カスタム TypeConverter を使用する必要があることがわかりましたが、CSV フィールド タイプGeneralまたはnumericC# タイプの文字列に変換する方法についてのポインタが見つかりません。
c#-4.0 - ILookup に転置された CSV ファイル
ベンダーは毎晩 csv ファイルを提供してくれます。その csv を取得し、いくつかの列を取り出して、社内アプリケーションにインポートする必要があります。受け取ったcsvは、次のようになります。
StudentId、GradYear、2014 Thing1、2014 Thing2、2015 Thing1、2015 Thing2
など、列を永久に追加しているように見えます。この csv を最初に見たとき、最初に思いついたのは、2 列に転置することでした。
私の傾向は、csvHelper を使用してこのファイルを読み取り、ILookup を作成して転置することです。したがって、次のようなルックアップがあります。
キーは StudentId であり、KeyValuePair は列ヘッダー: セル値です。Dictionary キーのカウンターを使用して、Dictionary を使用してほぼ解決できますが、StudentId をキーとして Lookup にジャンプすることはできません。辞書を作成する方法は次のとおりです。
次のコードでレコードを表示できます。ルックアップにするには、この foreach のバージョンを実行する必要がありますか? または、辞書を使用して「StudentId」の場合はそれをキーにする必要がありますか?
ほとんどの場合、ここで正しい軌道に乗っているかどうかを知りたいです。最終的に得られるベンダー データのオブジェクトがあれば、それをループ処理し、生徒と生徒の記録を比較して、アプリで記録を更新するかどうかを決定する必要があります。
c# - ファイル形式に空の行があるため、csv ファイルの最初の行をスキップします
以下は、csvファイルからアップロードされたストリームを取得するオブジェクトリストを返す私の一般的なメソッドですが、 csv の2行目からのみヘッダーがあるため、最初の行をスキップしたいと思います。このコードを2行目から取得するように変更するのを手伝ってください