Excel 自动化插件 UDF 无法访问
Posted
技术标签:
【中文标题】Excel 自动化插件 UDF 无法访问【英文标题】:Excel Automation Addin UDFs not accesible 【发布时间】:2010-06-03 21:37:29 【问题描述】:我创建了以下自动化插件:
namespace AutomationAddin
[Guid("6652EC43-B48C-428a-A32A-5F2E89B9F305")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class MyFunctions
public MyFunctions()
#region UDFs
public string ToUpperCase(string input)
return input.ToUpper();
#endregion
[ComRegisterFunctionAttribute]
public static void RegisterFunction(Type type)
Registry.ClassesRoot.CreateSubKey(
GetSubKeyName(type, "Programmable"));
RegistryKey key = Registry.ClassesRoot.OpenSubKey(
GetSubKeyName(type, "InprocServer32"), true);
key.SetValue("",
System.Environment.SystemDirectory + @"\mscoree.dll",
RegistryValueKind.String);
[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type type)
Registry.ClassesRoot.DeleteSubKey(
GetSubKeyName(type, "Programmable"), false);
private static string GetSubKeyName(Type type,
string subKeyName)
System.Text.StringBuilder s =
new System.Text.StringBuilder();
s.Append(@"CLSID\");
s.Append(type.GUID.ToString().ToUpper());
s.Append(@"\");
s.Append(subKeyName);
return s.ToString();
我构建它并且它注册得很好。我打开excel 2003,进入工具->插件,点击自动化按钮,插件出现在列表中。我添加它,它显示在插件列表中。但是,功能本身并没有出现。如果我输入它不起作用,如果我查看函数向导,我的插件不会显示为类别并且函数不在列表中。
我在 Windows 7 x86 上使用 excel 2003。我用visual studio 2010构建了这个项目。这个插件在用visual studio 2008构建的windows xp上运行良好。
【问题讨论】:
【参考方案1】:原来 CLR 不能正常工作,安装了一个补丁,现在它可以工作了。
【讨论】:
以上是关于Excel 自动化插件 UDF 无法访问的主要内容,如果未能解决你的问题,请参考以下文章
我创建了一个文件来访问所有全局变量。我无法访问 pyspark-sql 查询中定义的 UDF 中的全局变量
databricks udf 广播字典值返回字典列表;无法访问该列表中字典的值