gpt4 book ai didi

c# - 动态加载所有 COM 类型的 Excel?

转载 作者:行者123 更新时间:2023-11-30 13:46:59 27 4
gpt4 key购买 nike

我想探索这条动态使用 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 库,我的应用程序将无法启动。如果我动态加载它们,我可以检查它们是否存在并通知用户缺少的功能。

最佳答案

使用动态

Type typeExcel = Type.GetTypeFromProgID("Excel.Application");

dynamic excel = Activator.CreateInstance(typeExcel);
excel.Visible = true;

dynamic workbooks = excel.Workbooks;
workbooks.Add();
workbooks.Add();

另见 this answer .

关于c# - 动态加载所有 COM 类型的 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19023141/

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