Don*_*ald 1 c# excel vsto add-in user-defined-functions
我看到一篇关于使用VBA在VSTO托管代码中创建Excel UDF的文章:http://blogs.msdn.com/pstubbs/archive/2004/12/31/344964.aspx.
但是我希望使用VSTO 2005 SE在C#Excel插件中工作,任何人都可以帮忙吗?
我尝试了Romain指出的技术,但在尝试加载Excel时,我得到以下异常:
无法找到或无法加载自定义程序集.您仍然可以编辑和保存文档.....
细节:
Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
************** Exception Text **************
System.Runtime.InteropServices.COMException (0x80020005): Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))
at Microsoft.Office.Interop.Excel._Application.Run(Object Macro, Object Arg1, Object Arg2, Object Arg3, Object Arg4, Object Arg5, Object Arg6, Object Arg7, Object Arg8, Object Arg9, Object Arg10, Object Arg11, Object Arg12, Object Arg13, Object Arg14, Object Arg15, Object Arg16, Object Arg17, Object Arg18, Object Arg19, Object Arg20, Object Arg21, Object Arg22, Object Arg23, Object Arg24, Object Arg25, Object Arg26, Object Arg27, Object Arg28, Object Arg29, Object Arg30)
at ExcelWorkbook4.ThisWorkbook.ThisWorkbook_Startup(Object sender, EventArgs e) in C:\projects\ExcelWorkbook4\ExcelWorkbook4\ThisWorkbook.cs:line 42
at Microsoft.Office.Tools.Excel.Workbook.OnStartup()
at ExcelWorkbook4.ThisWorkbook.FinishInitialization() in C:\projects\ExcelWorkbook4\ExcelWorkbook4\ThisWorkbook.Designer.cs:line 66
at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ExecutePhase(String methodName)
at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ExecuteCustomizationStartupCode()
at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ExecuteCustomization(IHostServiceProvider serviceProvider)
************** Loaded Assemblies **************
Run Code Online (Sandbox Code Playgroud)
您还应该看一下ExcelDna - http://www.codeplex.com/exceldna.ExcelDna允许托管程序集通过本机.xll接口将用户定义的函数(UDF)和宏公开给Excel.该项目是开源的,可以自由地进行商业用途.
用户定义的函数可以用C#,Visual Basic,F#,Java(使用IKVM.NET)编写,并且可以编译为.dll或通过基于文本的脚本文件公开.支持Excel 97到Excel 2007的Excel版本.
使用.xll接口而不是自动化加载项的一些优点包括:
归档时间: |
|
查看次数: |
3267 次 |
最近记录: |