【问题标题】:Write large amount of data to Excel using C#, Asp.net使用 C#、Asp.net 将大量数据写入 Excel
【发布时间】:2015-09-15 10:48:44
【问题描述】:

我需要(使用 C#、Asp.net 2010)将大量数据(300,000 行)从 DB 写入 Excel(2010)。它还应该动态创建大约 20 张纸。所以最终的 Excel 工作簿将有 15,000 行每张纸和 20 张纸。我尝试使用 Open XML (DOM),但花了很多时间,我在等了大约 40 分钟后放弃了它,但没有输出迹象。我还尝试关注Brian Jone's post,了解如何使用 OpenXmlReader 和 OpenXmlWriter 复制工作表并向其中添加行。但我不知道如何使用该方法添加工作表。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# asp.net excel


    【解决方案1】:

    我建议查看SpreadsheetGear

    在处理较小的文件时,创建电子表格的临时方法很好,但当您开始使用它们来创建较大的文件时,性能和质量会受到影响。

    我过去使用过 SpreadsheetGear,虽然您必须为此付费,但发现它非常值得投资。

    【讨论】:

      【解决方案2】:

      根据之前的帖子

      Library to write an Excel file

      如果许可证 (GPL) 适合您,EPPlus 似乎是您的一个选择。

      【讨论】:

        【解决方案3】:

        你真的,真的需要写吗?你有 SSRS 会很乐意为你做这件事。 (只要您的数据库是 MS SQL Server)。

        【讨论】:

        • 是的,我真的需要这样做。我们也使用 SSRS,但不能用于此目的,除非 SSRS 具有执行我想要的功能(如以我想要的方式导出到 excel)。但我怀疑。
        • 也许值得检查一下?当然,您可以将报告分解为电子表格。你还有什么需要的吗? [也许现在是时候更新您的问题,详细说明您尝试实现的目标?]
        【解决方案4】:

        使用互操作,我知道我们必须关闭自动计算电子表格选项 - 这提高了电子表格的性能和输入值。

        就像 Juliusz 所说 (+1),SSRS 可能是解决这个问题的方法,因为它包含大量数据。有一种方法可以让它们在导出到 excel 期间放在单独的工作表上,但我忘记了我们是如何做到的。

        【讨论】:

        • 但我不认为我们可以在从 SSRS 导出时闯入工作表。
        • 这已经在这里讨论过很多次了:因为这是 ASP.NET,所以程序可能在服务器上运行,应该非常非常避免使用 Interop (!!!)阅读此support.microsoft.com/kb/257757 了解更多信息。
        猜你喜欢
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 2021-06-29
        • 1970-01-01
        • 2021-11-29
        • 2018-06-18
        • 2013-05-08
        • 1970-01-01
        相关资源
        最近更新 更多