【发布时间】:2015-01-14 11:22:58
【问题描述】:
我意识到这是一个很好的话题,但是在查看了许多帖子之后,我正在寻找不同的解决方案。该应用程序是 ac# web、.net framework 4.5 应用程序,需要将大约 80,000 多行从 SQL Server 2012 数据库导出到 Excel 电子表格模板(使其看起来漂亮并进行格式化)并将其流式传输给用户以供下载.
我意识到一个答案可能是重新询问为什么我们需要这样做并找到另一种方法。该应用程序正在查看大量的金融交易。用户希望保留在 Excel 中导出和使用数据的能力。在我开始寻找其他帮助他们的方法之前,我想看看是否有人有什么好主意!
当前的解决方案循环遍历数据并使用 OpenXML 库生成 XML。虽然这对于较小的数据集运行良好且快速,但对于较大的数据集则需要很长时间。
除了创建 Excel 文件之外,是否还有其他方法:
- 通过某种数据传输对象将数据库中的所有数据提取到应用程序中,该对象传输大量数据时速度很慢。
- 使用需要许可的第三方组件,因为没有预算。
- 使用 OpenXml 循环遍历所有行并生成完整输出。
- 在网络驱动器上生成和存储物理文件,因为存在数据安全限制。
- 使用 SSRS
我正在考虑使用 SQL Server 在内存中生成 Excel 文件(通过 SSIS),从应用程序打开流,通过 OpenXml 或其他方式编辑格式,然后将文件流式传输给用户.不确定这是否可行或是否有其他选择?
【问题讨论】:
标签: c# sql-server excel