【发布时间】:2016-04-16 13:38:37
【问题描述】:
我在客户端使用 ASP.NET Web API 2 (.NET 4.6.1) 和 AngularJS。我的要求是以 CSV 或 Excel 格式导出表格数据。由于安全原因,我不能使用 bcp 或 sqlcmd。另外,不能使用 DTS 包,因为参数将来自 Web UI,我需要将其传递给存储过程以检索结果并通过 api 发送回文件。
目前,我正在尝试使用实体框架 6 将所有 500K 记录读取为 IEnumerable 类型。我的表有大约 50 万条记录,有 40 多列。我试图将其转换为 CSV,然后以纯文本形式返回并在浏览器中以 blob 形式打开。
问题:
- 有没有更好的方法可以在几秒钟内导出和返回数据。
- 如果 IEnumberable 到 CSV 是唯一的方法,那么我应该先将其写入文件并返回文件还是返回纯文本作为来自 web api 的响应。
- 我尝试了一些来自网络的代码来将 IEnumerable 转换为 CSV(使用 String.Join 和 StringBuilder 并且效率不高。感谢,如果有人可以分享如何快速将大数据转换为 CSV 或以其他方式导出数据.
【问题讨论】:
-
500K 行数据没有什么会“非常快”
标签: c# csv export entity-framework-6