我希望能够动态地使用Excel。
我想在我的C#应用程序中使用Excel,而不需要包括dll等文件。我只需先检查所需的Excel版本是否已安装并运行它。
首先,我想获取所有需要的类型,但我无法获得它们:
// works
Type typeExcel = Type.GetTypeFromProgID("Excel.Application");
object excel = Activator.CreateInstance(typeExcel);
object workbooks = typeExcel.InvokeMember("Workbooks", BindingFlags.GetProperty, null, excel, null);
// this doesn't work, returns null
Type typeWorkbooks = Type.GetTypeFromProgID("Excel.Workbooks");
如果我没有正确的类型,我就无法调用成员。那么我做错了什么?我该如何加载我需要的所有类型并确保它们存在?我的当前Excel版本是2003。
造成这种情况的原因:如果我包含在目标系统上未安装的COM库,我的应用程序将无法启动。如果我动态加载它们,我可以检查它们的存在并通知用户缺少的功能。