gpt4 book ai didi

c# - 在自定义应用程序中托管 MS Office 文档的更好选择?

转载 作者:太空狗 更新时间:2023-10-30 01:27:09 25 4
gpt4 key购买 nike

我目前在 .NET (2.0) Form 中托管一个 IE 浏览器控件,并使用它加载 Office 文件,例如 Excel 和 Word,因此:

_ieCtrl.Navigate("C:\\test.xls", False);

托管和加载工作正常,除非每当我导航到一个文件时,我都会看到一个对话框,询问我是要保存还是打开该文件。 (这是标准的 IE 文件下载行为。)当然我总是想打开它,但我不想显示对话框。

另一个问题是,当我关闭承载 IE 控件和 Office 文档的窗口时,文档不会关闭并在磁盘上保持打开状态。这意味着后续尝试通过我的应用程序或 native office 应用程序打开同一文件将因共享违规而失败。

是否有程序化方法来避免此对话并随后清理资源?我要求一个程序化的答案,因为网络研究只产生了需要修改操作系统级设置的解决方案。

赏金注意:

我对这个问题的任何解决方案持开放态度,这将使我能够:

  • 在我的应用程序中托管一个 Excel 电子表格
  • 相当透明地工作(避免像上面描述的那样的可用性问题)
  • 避免必须进行任何可能影响其他应用程序(尤其是 IE)的特定于操作系统的更改
  • 零额外成本(请不要使用许可的第 3 方库)代码项目和其他开源资源都可以
  • 不要乱用 DSO Framer ActiveX 控件,除非开发/发现稳定版本

最佳答案

您是否希望用户能够以类似 Excel 的方式(即列、行、公式等)处理 Excel 文件,并可能将其保存回来?如果是这种情况,我看不出如何在不依赖 COM Interop 与 Excel 对象模型或通过集成第三方库来处理 Excel 工作表的情况下很好地解决这个问题。我知道您说没有付费解决方案,但是有一些功能丰富的第 3 方控件仅用于在应用程序中处理 Excel 文件。

我注意到您对 SLaks 的评论最终产品是“各种仪表板”。如果您打算设计一个自定义仪表板应用程序,您是否考虑过解析 Excel 文件以提取数据,然后在您的应用程序中以逻辑方式呈现它。这消除了直接显示和使用 Excel 文件 的需要,同时仍然允许您使用该文件中的数据。如果您试图获取文件外的数据,可以使用以下两种方法:

  • 您可以考虑使用 Excel 对象模型和 COM 互操作将 Excel 文件中的数据读入您的应用程序。当然,这包括对正在安装的 Excel 的依赖性,但这是有可能的。 This article有一些很棒的代码可以帮助您开始以这种方式读取 Excel 文件。
  • 更好的方法可能是使用不依赖于本地系统上安装的 Excel 的库。 This answer建议使用 Excel Data Reader library ,在 CodePlex 上可用。

我知道这个答案回避了您原来的答案“在 [a] 自定义应用程序中托管 MS Office 文档”,但如果您真正感兴趣的是这些 Excel 中的数据文件,希望这个答案会有所帮助。

关于c# - 在自定义应用程序中托管 MS Office 文档的更好选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com