Excel-Dna:Excel命令与ExcelDNA.Registration包共存
Excel-Dna: Co-existence of ExcelCommand and ExcelDNA.Registration Package
我想在使用 ExcelDNA 注册包的 C# 程序中编写 Excel 命令 UDF。
但是,为了使用注册包,如果我在 dna 文件中设置 explicitRegistraiton="true",则无法加载以下简单的 Excel 命令。其实是可以编译的,只是UDF命令没有出现在Excel加载项选项卡中。
如何在使用 ExcelDNA 注册的程序中使用 excel 命令?
// C# program
[ExcelCommand(MenuName ="Test", MenuText ="Test")]
public static void SayHelloCommand()
{
MessageBox.Show("Hello");
}
// .dna file
<DnaLibrary Name="Registration.Sample Add-In" RuntimeVersion="v4.0" >
<ExternalLibrary Path="Registration.Sample.dll" ExplicitRegistration="true" LoadFromBytes="true" Pack="true" />
<Reference Path="ExcelDna.Registration.dll" Pack="true" />
</DnaLibrary>
一旦您将 ExplicitRegistration
设置为 true
,Excel-DNA 希望您自己注册函数和命令。
调用ExcelRegistration.GetExcelFunctions().RegisterFunctions()
注册函数的方式相同,也可以调用ExcelRegistration.GetExcelCommands().RegisterCommands()
注册命令
例如
public class AddIn : IExcelAddIn
{
public void AutoOpen()
{
ExcelRegistration
.GetExcelCommands()
.RegisterCommands();
// ...
}
public void AutoClose()
{
// ...
}
}
我想在使用 ExcelDNA 注册包的 C# 程序中编写 Excel 命令 UDF。
但是,为了使用注册包,如果我在 dna 文件中设置 explicitRegistraiton="true",则无法加载以下简单的 Excel 命令。其实是可以编译的,只是UDF命令没有出现在Excel加载项选项卡中。
如何在使用 ExcelDNA 注册的程序中使用 excel 命令?
// C# program
[ExcelCommand(MenuName ="Test", MenuText ="Test")]
public static void SayHelloCommand()
{
MessageBox.Show("Hello");
}
// .dna file
<DnaLibrary Name="Registration.Sample Add-In" RuntimeVersion="v4.0" >
<ExternalLibrary Path="Registration.Sample.dll" ExplicitRegistration="true" LoadFromBytes="true" Pack="true" />
<Reference Path="ExcelDna.Registration.dll" Pack="true" />
</DnaLibrary>
一旦您将 ExplicitRegistration
设置为 true
,Excel-DNA 希望您自己注册函数和命令。
调用ExcelRegistration.GetExcelFunctions().RegisterFunctions()
注册函数的方式相同,也可以调用ExcelRegistration.GetExcelCommands().RegisterCommands()
注册命令
例如
public class AddIn : IExcelAddIn
{
public void AutoOpen()
{
ExcelRegistration
.GetExcelCommands()
.RegisterCommands();
// ...
}
public void AutoClose()
{
// ...
}
}