【问题标题】:Excel-DNA automation on server side服务器端的 Excel-DNA 自动化
【发布时间】:2015-05-28 08:55:05
【问题描述】:

我有一个关于Excel-DNA 工具在服务器端场景下使用时的行为方式的问题。我完全了解Office limitation when used in server-side scenarios,但我不知道 Excel-DNA 工具是否可以解决这个问题。

我们的应用程序出现了一个新要求,它迫使我们读取 xlsb 文件,EPPlus 和 NPOI 都不支持,它为我们的应用程序提供了核心功能。

我计划在服务器上使用 excel-DNA 互操作功能,或者将 xlsb 转换为更友好的 xlsm 格式,或者直接读取这些文件。

您能否就这个可能的解决方案向我提供反馈,或者如果可能的话,提供有关如何读取 xlsb 文件的开源替代方案?


仅供参考: 我们当前的场景是一个 Web 应用程序,它为每个用户接收多个 excel 文件,提供一个用户界面以允许显示和编辑数据,并生成基于 excel 的报告。我们通常每个用户有 30 个文件,每个文件 10-50 MB,并且可以同时上传或下载 excel 文件的 10-20 个用户。

到目前为止,我们一直在使用 EPPlus 以及后来的 NPOI 来支持旧的 xls 文件来完成这些任务。无论如何,新的要求意味着读取 xlsb 文件,到目前为止,EPPlus、NPOI 和我所知道的都不支持。

【问题讨论】:

    标签: .net excel-interop epplus npoi excel-dna


    【解决方案1】:

    Excel-DNA 是一个开源库,用于使用 .NET 制作 Excel 插件。听起来您不需要 Excel 加载项。相反,您只需要编写一个使用 COM 对象模型与 Excel 对话的脚本或小型应用程序。然后它可以要求 Excel 打开 .xlsb 文件,并“另存为”其他格式之一,比如 xlsx。然后你就可以在 .xlsx 文件的基础上使用 EPPlus 来完成剩下的处理了。

    很难说在您的预期负载下 Excel 的可靠性和性能如何。我可能会建议您找到一种方法,为每次转换启动一个新的 Excel 流程。

    EasyXLS 是一个商业选项 - 他们有一个 .NET 库并且似乎支持读取和写入 .xlsb 文件。它看起来适合像您这样的服务器应用程序。

    否则,创建您自己的(可能是开源的).xlsb 处理器可能是一个有趣的项目。我看到 .xlsb specification 可以从 Microsoft 获得。

    【讨论】:

    • 正是这个想法;使用 Microsoft.Interop.Excel 库中的“SaveAs”方法。我希望 excel-DNA 比直接使用 Office 互操作库表现得更好。 office 和 excel-DNA 之间有什么显着差异吗?
    • 另一个问题:使用与此类似的方法(stackoverflow.com/questions/29234231/…)怎么样?也许我可以用这种方法将 xlsb 文件转换为 xlsm...
    • 好的,谢谢您的回答;我在我的项目中使用 Excel-DNA 互操作库而不是 Excel-DNA,因此我对@Govert 回复感到困惑。我将尝试将每个 Interop Excel 应用程序实例彼此隔离,或者在最坏的情况下添加一个同步锁来执行 xlsb 转换。同时,我将按照您的建议看一下 Easy XLS,并且可能不会实现 xlsb 处理器:)。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2010-12-11
    相关资源
    最近更新 更多