1

Excel如果它安装在目标机器上,我需要使用,如果没有,则生成一个text文件。

我检查excel application注册表项是否存在,但在我这样做之前,我得到了一个

System.IO.FileNotFoundException: Could not load file or assembly Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c

或其依赖项之一。

如何检测interop程序集是否可用并防止在不可用时run-time尝试加载它。(我不知道Excel目标上可能存在什么版本,所以我认为我不能重新分配一个interop,以防万一它是错误的。)

4

1 回答 1

2

您似乎在代码中添加了对特定互操作程序集的引用。您的应用程序甚至不会加载,因为它无法找到它需要运行的所有程序集。如果您绝对必须通过 Interop 使用 Excel,则必须删除引用并使用 Assembly.Load 动态加载程序集。

如果您只想读取/创建 Excel 文件,则根本不需要 Excel。

XLSX 只是一堆压缩的 XML 文件。Microsoft的OpenXML SDK允许您在不直接处理 XML 的情况下操作文件,并且在 SDK 之上还有其他库可以使编程更加容易。

使用 Open XML SDK 2.0 生成 Excel 2010 工作簿对 XLSX 格式以及如何使用 SDK 轻松创建简单和复杂的电子表格提供了非常详细的说明。

于 2013-05-30T10:16:36.643 回答