フォームデータから読み込んだExcelファイルからsomo c#オブジェクトを作成します。C#でHttpContentからcsvファイルのすべての行を読み込む方法
File.ReadAllLines(filename)
.Skip(1)
.Select(x => x.Split(','))...
は、しかし、私はストレートHttpContentからの流れから外れ、それを読みたい:私は最初のファイルとして保存してから使用している場合には動作します。これを試すと、エンコードの問題が発生します。ウェブAPIアクションで
private const int WIN_1252_CP = 1252; // Windows ANSI codepage 1252
public IEnumerable<string> ReadLines(Func<Stream> streamProvider,
Encoding encoding)
{
using (var stream = streamProvider())
using (var reader = new StreamReader(stream, encoding))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
:
...
HttpContent file1 = files[0];
Stream input = await file1.ReadAsStreamAsync();
var listData = ReadLines(() => input,
Encoding.GetEncoding(WIN_1252_CP)).ToList();
私は、行の正しい番号を得るが、エンコードは動作しません。
編集:私は愚かであり、これはutf-8エンコーディングでうまくいきました。しかし、その答えは、この機能を実装するためのきめ細かな方法を提供しているので、それでも役に立つと願っています。
これは、Excelファイルに添付されているフラットファイル(csv)を読み込もうとするように聞こえますか?混乱を明確にする。 – Nkosi
カスタムエンコードを提供するのはなぜですか?あなたはエンコーディングを渡さないようにしましたか? –
@Nkosi良い点。私はCSVを渡そうとしています、混乱のために申し訳ありません。私は質問を更新します。 – Sam