私はクライアント側でASP.NET Web API 2(.NET 4.6.1)とAngularJSを使用しています。私の要件は、CSV形式またはExcel形式の表データをエクスポートすることです。セキュリティ上の理由からbcpまたはsqlcmdを使用することはできません。また、DTSパッケージを使用することはできません。パラメータはWeb UIから来るため、結果を取得してAPIを介してファイルを返送するためにストアドプロシージャに渡す必要があります。大量のデータをWeb API経由で高速にエクスポートする方法
現在、エンティティフレームワーク6を使用してすべての500KレコードをIEnumerable型に読み込もうとしています。私のテーブルには、40個以上のカラムを持つ約500,000のレコードがあります。私はそれをCSVに変換しようとしていましたが、プレーンテキストとして戻ってブラウザでBLOBとして開きました。
質問:
- 数秒以内にデータをエクスポートして返すために任意のより良い方法はあります。
- IEnumberable to CSVが唯一の方法であれば、最初にファイルを書き出してファイルを返すか、Web APIから応答としてプレーンテキストを返す必要があります。
- IEnumerableをCSV(String.JoinとStringBuilderを使用していますが、効果的ではありません)に変換するためにウェブからいくつかのコードを試しましたが、誰かが大量のデータをCSVに非常に速く変換する方法や、 。
データの500K行では「非常に高速」*何もありません – charlietfl