私が持っている(データテーブルに保存されている)いくつかのデータをエクスポートしようとしています。これらの値の一部には、改行が含まれています。これで、Excel(2010)でファイルをインポートしようとするたびに、実際の改行ではなく、新しい行として改行が認識されます。
私は何時間も検索し、多くの解決策を見てきましたが、それを修正することができないようです。
csvファイルを出力する方法:(変数csvfileはstringbuilderです)
context.Response.Clear();
context.Response.ContentType = "text/csv";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name + ".csv");
context.Response.Write(csvfile.ToString());
context.Response.End();
手動でExcelで開くと正常に表示されます。ただし、Excel 2003はファイル形式をサポートしていないため、インポートする必要があります。インポートすると、改行(フィールド内の\ n)が新しい行として表示されます。
残念ながら、私が使用している実際のデータ(すべて個人データ)の例を示すことはできませんが、それがどのようにうまくいかないかの例を示すことができます:
Header1,Header2,Header3
"value1","value2","value 3
and this is where its going wrong"
これは単純なcsvファイルであり、インポートすると、どこで問題が発生するかがわかります。デフォルトでは、二重引用符でフィールドをカプセル化します。また、デフォルトで値から先頭のスペースを削除します。
私はこの一見単純な問題に少なくとも2日間費やしましたが、私の人生では、どうすればそれを修正できるかわかりません。私はこの同じ問題について複数のトピックを見てきましたが、そこで提供されている解決策のどれもこれを修正していないようです。