首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用VSTO 2005 SE使用C#Excel加载项创建Excel 2003 UDF

VSTO 是 Visual Studio Tools for Office 的缩写,它是微软公司推出的 Office 自动化开发工具包。VSTO 2005 SE 是 VSTO 2005 的简易版,它是专门用于 Office 2003 的插件扩展工具。因此,要使用 VSTO 2005 SE 使用 C# Excel 加载项创建 Excel 2003 UDF,你需要先安装 Visual Studio 2005,然后按照以下的步骤进行操作:

  1. 在 Visual Studio 中创建一个新的 C# 项目。<configuration> <startup> <supportedRuntime version="v2.0.50727" /> </startup> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.Office.Interop.Excel" publicKeyToken="71e9bce111e942a3f" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>注意,这里使用的是 Office 2003 的 Microsoft.Office.Interop.Excel,而不是 Office 2007 或 2010 的版本,因为它们包含了许多新功能,而这些新功能可能不会在 Excel 2003 中工作。 4. 接下来,编写用于加载 Excel 的代码,这里是一个简单的实例代码:using Excel = Microsoft.Office.Interop.Excel; private void LoadExcel(Excel.Workbook workbook) else if (range.Cells[1, 1].Value == "UDF") } } } }此代码加载 Excel 文件并创建一个包含两列的表头,第二列用于存储 UDF。当表头行被选中时,代码会设置第二列中的文本。这个简单的代码片段展示了一些 UDF 的概念。 5. 如果你的 UDF 需要访问 Excel 中的数据,你可以使用 Excel.Range 对象进行访问,例如:private void SetCellText(Excel.Range range, string text) private void SetRangeText(Excel.Range range, string text) } }这些函数可以直接在 Excel 中对单元格进行操作。 6. 在你的加载项中调用这些函数来创建 UDF。
  2. 接下来,添加 Microsoft Office 2003 的项目引用。
  3. 在项目中的应用程序配置文件(App.config)中,将 Microsoft.Office.Interop.Excel 的版本设置为您要使用的 Office 的版本,例如:

总之,使用 VSTO 可以创建 Excel 2003 的 Excel 加载项来加载 Excel 文件,并在这些加载项的单元格中创建自定义的 UDF,使用 VSTO 来创建 UDF 通常需要一些 Microsoft Office Interop 2007 的基础知识和编程能力。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Office 365开发概述及生态环境介绍(一)

是我真正意义上开始较为深入使用的版本,尤其以Excel和Access这两个组件,结合当时的实际工作需要,我使用VBA开发了从简单到复杂的各种小应用。...(通常在默认的文件扩展名后面添加一个x以示区分,如Word 2003的格式是doc,而Word 2007虽然依然支持doc,但更推荐用户使用docx文件格式)。...其次,它开始支持使用Visual Studio 2005以及.NET Framework对其进行开发定制,这就引出了一个全新的开发工具VSTO——Visual Studio Tools for Office...2005,对应的Office版本是2007。...必须提出的是,微软对于VBA和VSTO的支持将继续保留,它们有自己的优势,尤其是对于Office 应用程序自有功能的自动化、快速开发、在本地使用的场景。

3K20

VSTO之外的另一开发利器Excel-DNA介绍,VSTOExcel-DNA优缺点分析

顺便给大家介绍下,一个同样精彩的开发方式,使用Excel-DNA开发自定义函数加载。...开发出来的VSTO插件,对用户的OFFICE版本有要求,一般需要OFFICE2007及以上才可使用。...本人曾经呆过的一家日本500强制造业企业当时使用的是OFFICE2003,有一种还想再用10年的感觉。...开发自定义函数的利器,VSTO开发自定义函数在发布给用户机器使用时麻烦,要对注册表注册,需要管理员权限,但Excel-DNA开发的完全没有这些烦恼,用户双击即可打开使或进行加载载入,下次打开Excel...用户发布友好,直接一个xll文件发给用户,用户不需安装即可使用,无需管理员权限,无需访问注册表权限,和xlam加载宏的效果一样。 1.10.

4.9K41
  • 攻击者使用 VSTO 接替宏进行武器化攻击

    微软的 Visual Studio IDE 中提供了一个软件开发工具集 VSTO,通过 VSTO 可以支持在 .NET 中开发 Office 加载,还允许创建能够执行这些加载的 Office 文档文件...VSTO 加载可以与为其开发的特定 Office 应用程序(Word、Excel 等)相关联,并将在每次启动该应用程序时执行,从而顺带实现了持久化的能力。...本地 VSTO 本地的 VSTO 会将 .NET 编译的 .DLL 加载及其依赖与为执行它而创建的 Office 文档存放在一起,例如 ISO 文件中。...全部文件 一旦受害者打开恶意文档,就会提示用户安装加载,与之前使用 VBA 宏时引诱用户启用内容十分相似。...例如,恶意 Word 文档从远程获取 VSTO 加载: 远程 VSTO 下载的 DLL 加载中,嵌入了下载加密的 ZIP 文件的代码。

    88330

    OFFICE插件管理工具更新,让你安装使用OFFICE插件无忧

    以下这些系统自带的加载如规划求解、数据分析库等,貌似对其管理也有点小问题。真要处理他们时,要回到Excel的原生加载界面处理。...一、遍历本机或当前用户下的所有COM加载插件 此处的插件清单仅为COM加载插件,一般性的普通加载不在此清单范围内,而且普通加载一般出问题不多,下文也会简单说明如何维护普通加载的插件。...六、打开OFFICE加载文件夹 前面提到,本工具仅对COM加载的插件进行管理,普通加载Excel的以xlam结尾的文件(使用xll技术开发的插件,同样会落在此清单范围内,如Excel催化剂开发的自定义函数和...EasyShu图表插件),一般来说,会将其放到加载文件夹里,然后Excel会自动到此位置找寻所有的普通加载插件,将其以清单的方式返回给用户去勾选与否。...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载】定位到此加载清单。

    2K30

    【追加视频】OFFICE插件管理工具重整后再上路,更好用易用。

    一、遍历本机或当前用户下的所有COM加载插件 此处的插件清单仅为COM加载插件,一般性的普通加载不在此清单范围内,而且普通加载一般出问题不多,下文也会简单说明如何维护普通加载的插件。...经过复制后,经反馈是有效的,一般VSTO技术开发的插件,都因为此项的修复得以改善,正常使用。...六、打开OFFICE加载文件夹 前面提到,本工具仅对COM加载的插件进行管理,普通加载Excel的以xlam结尾的文件(使用xll技术开发的插件,同样会落在此清单范围内,如Excel催化剂开发的自定义函数和...EasyShu图表插件),一般来说,会将其放到加载文件夹里,然后Excel会自动到此位置找寻所有的普通加载插件,将其以清单的方式返回给用户去勾选与否。...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载】定位到此加载清单。

    1.3K30

    『JSA宏神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如果使用外部程序或VSTO插件可以调用这些接口,是比较完美的。例如使用RPA工具,可以全自动化地对其进行单元格图片插入,最后形成报告结果。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...总结 WPS在二次开发上的支持,真的出了名的糟糕,WPSJS加载、JSA宏,一开始觉得开了个不错的头,但几年下来,毫无进展。

    11410

    【追加功能】OFFICE插件管理工具重整后再上路,更好用易用。

    以下这些系统自带的加载如规划求解、数据分析库等,貌似对其管理也有点小问题。真要处理他们时,要回到Excel的原生加载界面处理。...一、遍历本机或当前用户下的所有COM加载插件 此处的插件清单仅为COM加载插件,一般性的普通加载不在此清单范围内,而且普通加载一般出问题不多,下文也会简单说明如何维护普通加载的插件。...经过复制后,经反馈是有效的,一般VSTO技术开发的插件,都因为此项的修复得以改善,正常使用。...六、打开OFFICE加载文件夹 前面提到,本工具仅对COM加载的插件进行管理,普通加载Excel的以xlam结尾的文件(使用xll技术开发的插件,同样会落在此清单范围内,如Excel催化剂开发的自定义函数和...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载】定位到此加载清单。

    1.4K30

    『JSA神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如果使用外部程序或VSTO插件可以调用这些接口,是比较完美的。例如使用RPA工具,可以全自动化地对其进行单元格图片插入,最后形成报告结果。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...总结 WPS在二次开发上的支持,真的出了名的糟糕,WPSJS加载、JSA宏,一开始觉得开了个不错的头,但几年下来,毫无进展。

    15010

    『JSA神助攻之三』将JSA宏另存为xlam以加载方式供外部程序无感调用和手撸大法生成带JSA宏的xlam文件

    以下是历史内容: 昨天匆忙间发布了使用外部程序/VSTO插件执行JSA宏的推文,其实还有一些后续的更劲爆的效果,在某些场景上可以有很好的发挥。...『WPS二次开发最新成果』使用外部程序/VSTO插件执行JSA宏 外部程序/VSTO插件执行JSA宏,可以将JSA宏保存到xlsm文件里,但更好的方式是保存到xlam文件里,用户更无感它的存在。...可以在外部程序/VSTO插件里直接使用Application.Addins.Add,将xlam文件加载进来。当然也可以直接修改注册表,让WPS表格每次启动时自动加载。...使用xlam文件,将它变成普通加载,不会出现一个新的工作薄的打开。使用体验更友好。 接着,如果用户想获得某个JSA宏嵌入到它的当下的工作薄里,这个又该如何处理。...经过以上三步操作,重新将解压后的xlsx文件进行zip压缩后,改后缀名为xlsm,使用WPS表格打开后,即可将JSA宏代码加载进文件中并可使用。 如果还想在工作表上,将形状绑定这个JSA宏代码呢?

    16310

    『JSA宏神助攻之三』将JSA宏另存为xlam以加载方式供外部程序无感调用和手撸大法生成带JSA宏的xlam文件

    以下是历史内容: 昨天匆忙间发布了使用外部程序/VSTO插件执行JSA宏的推文,其实还有一些后续的更劲爆的效果,在某些场景上可以有很好的发挥。...『WPS二次开发最新成果』使用外部程序/VSTO插件执行JSA宏 外部程序/VSTO插件执行JSA宏,可以将JSA宏保存到xlsm文件里,但更好的方式是保存到xlam文件里,用户更无感它的存在。...可以在外部程序/VSTO插件里直接使用Application.Addins.Add,将xlam文件加载进来。当然也可以直接修改注册表,让WPS表格每次启动时自动加载。...使用xlam文件,将它变成普通加载,不会出现一个新的工作薄的打开。使用体验更友好。 接着,如果用户想获得某个JSA宏嵌入到它的当下的工作薄里,这个又该如何处理。...经过以上三步操作,重新将解压后的xlsx文件进行zip压缩后,改后缀名为xlsm,使用WPS表格打开后,即可将JSA宏代码加载进文件中并可使用。 如果还想在工作表上,将形状绑定这个JSA宏代码呢?

    11110

    『WPS二次开发最新成果』使用外部程序VSTO插件执行JSA宏原创续篇

    昨天匆忙间发布了使用外部程序/VSTO插件执行JSA宏的推文,其实还有一些后续的更劲爆的效果,在某些场景上可以有很好的发挥。...『WPS二次开发最新成果』使用外部程序/VSTO插件执行JSA宏 外部程序/VSTO插件执行JSA宏,可以将JSA宏保存到xlsm文件里,但更好的方式是保存到xlam文件里,用户更无感它的存在。...可以在外部程序/VSTO插件里直接使用Application.Addins.Add,将xlam文件加载进来。当然也可以直接修改注册表,让WPS表格每次启动时自动加载。...使用xlam文件,将它变成普通加载,不会出现一个新的工作薄的打开。使用体验更友好。 接着,如果用户想获得某个JSA宏嵌入到它的当下的工作薄里,这个又该如何处理。...经过以上三步操作,重新将解压后的xlsx文件进行zip压缩后,改后缀名为xlsm,使用WPS表格打开后,即可将JSA宏代码加载进文件中并可使用。 如果还想在工作表上,将形状绑定这个JSA宏代码呢?

    40710

    个人永久性免费-Excel催化剂功能第47波-VBA开发者喜爱的加密函数类

    例如今天介绍的几个加密函数,在.Net Framework类库里,直接有现成的代码,几乎可以直接调用的程度,对于一些非OFFICE环境内的功能实现来说,使用VSTO开发或C#、VB.Net开发,开发效率还是有很大的提升...能够使用Application.Run来调用的前提是自定义函数的加载已经被加载,即xll文件已经被Excel加载进来。...如果使用代码来加载xll,也不复杂,使用AddIns.Add 方法,如下图所示 ?...第17波-批量文件改名、下载、文件夹创建等 第18波-在Excel上也能玩上词云图 第19波-Excel与Sqlserver零门槛交互-查询篇 第20波-Excel与Sqlserver零门槛交互-数据上传篇...Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA 因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行

    3.2K10

    『WPS二次开发最新成果』使用外部程序VSTO插件执行JSA宏

    在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如果使用外部程序或VSTO插件可以调用这些接口,是比较完美的。例如使用RPA工具,可以全自动化地对其进行单元格图片插入,最后形成报告结果。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...总结 WPS在二次开发上的支持,真的出了名的糟糕,WPSJS加载、JSA宏,一开始觉得开了个不错的头,但几年下来,毫无进展。

    55710

    可编程的SQL是什么样的?

    操作数据我们也可以使用 Excel(以及类似的软件),但是ExcelExcel的限制,譬如你各种点点点,还是有点低效的,有很多较为复杂的逻辑也不太好做,数据规模也有限。那什么交互最快,可扩展性最好?...但是随着联邦查询越来越多,越来越普及,我们希望给SQL提供更多的加载和保存多种数据源的能力。我们通过提供load语句来完成。 load excel.`....as output; 在上面的示例可以看到,我们加载了一个excel文件,然后映射成一张表,之后可以用标准的SQL进行处理。...使用功能 ! 将loadExcel变量转化为宏函数进行调用。参数传递类似命令行。 我们也支持命名参数: set loadExcel = ''' load excel....`/tmp/models/randomforest` as predicted_table; 或者将模型注册成UDF函数,使用Select语句进行预测: register RandomForest.

    65630

    Excel催化剂开源第7波-VSTO开发中Ribbon动态加载菜单

    在VS开发环境中,特别是VSTO的开发,微软已经现成地给开发者准备了设计器模式的功能区开发,相对传统的VBA、ExcelDna和其他方式的COM加载开发来说,不需要手写xml功能区,直接类似拖拉窗体控件一样...有某些场景,想动态地加载菜单时,在设计器的功能区开发中,相对xml功能区,来得更容易,本篇给大家介绍两种场景。...某些菜单下的内容不固定,根据用户的配置文件信息的条目数据多寡来动态加载,例如Excel催化剂中大量使用的动态菜单效果 在设计器中无需拖拉控件进来,代码动态生成 需要使用动态菜单功能,需要在menu控制中...TAB名称而非Label 结语 使用VSTO开发,可以有现成的功能区设计器模式可利用,无需手工书写xml功能区,作大量的回调函数处理等,并且在动态显示、隐藏控件、动态添加菜单子项等操作都非常灵活方便,不失为...VSTO开发的一大优势,虽然VSTO也有其弱点,但综合它带来的优势,笔者更喜欢使用VSTO来做开发。

    1.5K20

    Excel催化剂开源第18波-工作表、工作薄保护破解

    高级开发群体中,特别是VSTO、COM加载开发群体中,还是守口如瓶的,仿佛越是高级的开发者,越对自己掌握的“核心”技术保密,希望Excel催化剂这一系列的开源文章对此风气有所好转(在专业程序员圈子里,...2.VSTO开发的确还是很冷门,没有进入专业开发者的视野中 对于工作表密码破解这些,肯定是OFFICE开发者的专业领域,就算国内不开源,找国外,也没找到多少,所以此篇简单开源,还是有此必要性的。...Office.MsoTriState.msoTrue); sheet.Unprotect(); } 工作薄保护密码破解 工作薄保护密码破解,用百度上流传的VBA方式未能破解成功,印象中还有一个问题是不懂得如何改写回...开发者来说,VBA的教程已经非常丰富了,但VSTO仍是十分欠缺,但其实也不完成是欠缺,只要合理使用搜索引擎和官方帮助文档,还是可以找到够用的知识点使用的。...此篇简单地实现广大开发者广为熟知的功能,代码换成了C#的形式,可在VSTO上实现此功能,希望此代码段在愿意学习、查找的人手中能被找到并复用起来。

    1.1K40

    在VB.net中,List(of string())与List(of List(of string))有什么区别

    这种结构允许你创建类似于表格的数据结构,每一是一个字符串列表,可以看作是一行记录。...listOfListsOfStrings.Add(New List(Of String) From {"AnotherItem1", "AnotherItem2", "AnotherItem3"}) ' 或者使用...(2)VSTO外接Excel中,List(of List(of string))如何输出到Excel工作表 在VB.NET的VSTO外接程序中,如果您有一个`List(Of List(Of String...() Dim worksheet As Worksheet = workbook.Sheets(1) ' 或者使用 Sheets.Add() 创建新的工作表 ' 确定数据的行数和列数 Dim rowCount...然后,遍历列表中的每一(每一代表一行),并在Excel工作表中对应的位置写入数据。 请注意,在与COM对象交互后释放资源是很重要的,以避免内存泄漏。

    37610

    Excel催化剂开源第10波-VSTO开发之用户配置数据与工作薄文件一同存储

    在传统的VBA开发中,若是用的是普通加载方法,是可以存储数据在xlam上的,若用的是Com加载方法同时是Addins程序级别的项目开发的,配置文件没法保存到工作薄中,一般另外用配置文件来存放供调用。...使用CustomXMLPart对象保存配置信息 在xlsx版Excel文件中,区别于传统的xls文件,其文件本质是xml文件集合,在xlsx版文件结构中,除去工作表外,有另外一个对象同样可以存储数据,其存储数据的要求只要是...且此对象不止于在VSTO使用,在VBA上也同样有此对象可供计用。...使用方式大概是先Add一个CustomXMLPart,然后使用LoadXML方法即可把xml内容加载到此对象中,下次访问时,只需访问其XML属性,即可将xml内容取出(文本格式)。...有以上.Net天然地对XML友好使用体验,在Excel使用CustomXMLPart对象就变得十分轻松自在。

    1.3K20

    渗透怎么学?渗透测试中超全的提权思路来了!

    当我们把udf.dll导出指定文件夹引入mysql时候,其中的调用函数拿出来当作mysql函数来使用 注意事项 mysql版本小于5.1版本,udf.dll文件在windows2003下放在:c:\windows...利用udf文件加载函数执行命令 create function cmdshell returns string soname 'udf.dll'; //returns string soname ‘导出的...2、secure_file_priv=,可导出udf.dll到系统目录或者mysql数据库安装目录下的lib下plugin 3、授权mysql数据库远程用户的登录 (4)#数据库提权——启动提权 (这种方法不推荐...:xp_regwrite udf提权示例 (1)mysql版本小于5.1版本,udf.dll文件在windows2003下放在:c:\windows\system32。...(3)利用udf文件加载函数执行命令 ```shell create function cmdshell returns string soname 'udf.dll'; //returns string

    1.6K30
    领券