質問

私は2行のCSVファイルを持っています、最初のものは,

で区切って36列を含むヘッダー行です。

2行目は、,

で区切られた36値です。

2行目を読みたい、私はすべての人が csvhelperパッケージ、そうすることがわかりました。それをダウンロードしてくださいが、プロジェクトに追加するdllはありません。

私の質問は、それを含める方法と2行目の読み方です。

Install-Package CsvHelperを使用してインストールできることを知っていますが、このアプリケーションをサーバーに展開したいので、そのようにしてはいけません。したがって、add referenceのような方法がある場合は、

それを含める方法を知っていたら、2行目を読むことは難しくありません。 私はこのようなことをするでしょう:

  1. CSVファイルをロードする
  2. 1行目を読み、それを無視してください。
  3. 2行目を読み、,でそれを分割します。
役に立ちましたか?

解決

最初の行をスキップするためにTextReader.ReadLine()を使用することができます。

using (TextReader reader = File.OpenText("filename"))
{
    reader.ReadLine();
    // now initialize the CsvReader
    var parser = new CsvReader( reader ); // ...
}
.

他のヒント

受け入れられた答えは問題の回避策ですが、このような一般的なケースのための最初のクラスのソリューションを持っています
CsvConfigurationクラスにはHasHeaderRecordに設定できるプロパティtrueがあります。これにより、ライブラリはファイル内の最初の行をスキップします。

CsvConfiguration configuration = new CsvConfiguration { HasHeaderRecord = true };

using (TextReader sr = new StringReader(fileContent))
{
    CsvReader reader = new CsvReader(sr, configuration);
}
.

これは documentation

CSVファイルにヘッダ行がある場合、このフラグはリーダ/ライタに指示します。

update ライブラリの新しいバージョンでは、Class CsvConfigurationConfiguration

に変更されたばかりです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top