首页
学习
活动
专区
工具
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 应用程序自有功能的自动化、快速开发、在本地使用的场景。

2.9K20

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

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

4.3K41

攻击者使用 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 文件的代码。

84330

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

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

1.9K30

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

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

1.2K30

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

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

1.3K30

个人永久性免费-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.1K10

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

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

1.3K20

可编程的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.

63630

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

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

99140

在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对象交互后释放资源是很重要的,以避免内存泄漏。

15510

终于有一款组件可以全面超越Apache POI

如果想通过简单的代码逻辑,快速创建加载、编辑、导入/导出大型文档(Excel、Word、PDF),并将其部署到云端时,又该如何实现?...条件格式 GcExcel支持多种条件格式,如自定义图标集、判断是否高于平均值(AboveAverage)、发生日期判断、Top 10和重复判断,且这些条件格式的设置规则与VSTO保持一致。...图表类型 GcExcel的图表界面与VSTO一致,支持约53种图表类型。 Apache POI对图表的支持非常有限,仅支持Line、Bar、Column、Scatter和Radar图表类型。...Apache POI仅支持基本的AutoFilter,需要使用低级类来实现应用过滤或创建任何其他高级过滤器。 排序 GcExcel支持所有类型的行排序、列排序、自定义排序、颜色和图标排序。...但是,可以使用编程的方式创建相应的CSV / HTML文件。 11. 渐变填充 GcExcel支持渐变填充,而Apache POI不支持。 12.

3.2K10

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.2K20

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

当我们把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.4K30

Excel催化剂开源第3波-修复ExcelCom加载失效问题及WPS可调用Com加载的方法

为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,若您觉得此文有用,不妨小范围地分享到真正有需要的人手中 功能概述 修复ExcelCom加载常见问题,如每次需重新勾选COM加载或COM加载被列入禁用清单中不用使用...,同时也提供让WPS计用COM加载的方法 使用场景 因用户在使用COM技术开发的加载过程中,难免各种意外操作,致使加载处理非活动状态或失效状态,虽然可以通过界面的方式去解决,但步骤偏多,对普通用户来说...技术原理 其实COM加载的活动与否、禁用与否,都会在注册表上写上相关信息,只需从注册表层面对用户电脑的注册表项进行修改,即可实现非Excel界面操作的方式实现自动化修复插件。...WPS调用COM加载原理,也只是在注册表上新增几个条目,让WPS可以通过查找注册表,找到COM加载所在位置并调用它。...CheckDisalbledItem(); //TODO:检查Addin注册表 CheckRegister(); //增加WPS可识别VSTO

97910

Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域

上篇提到如何Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处。 VSTO最大的优势是,这双向的过程中,全程有用户的交互操作。...VSTO程序在用户全程数据链条中,都无缝地参与了,只在用户无法解决的复杂数据转换时,才使用二次开发进行处理,处理完,立即可进行下游的其他操作,用户体验绝对是一流。...许多VSTO用户还在抱怨着ADO.Net没有相应的方法而郁闷万方,看完此篇内容,会彻底改观,并且可以彻底放弃ADO这样的落后的技术,拥抱ADO.Net这样与时俱进的专业程序猿使用的技术。...在VSTO中,提供了ListObject的数据对象,区别于传统VBA中能够使用的ListObject。...具体代码实现 先创建一个Microsoft.Office.Tools.Excel命名空间内下的ListObject public static ListObject CreateNewVSTOListObject

2.3K30

Script Lab 版,九九乘法表,Excel 基础操作(2)

实现这个口算法分三个步骤: 创建一张新的工作表,命名为"9X9"; 从 A1 的位置开始打印剩法表; 乘法表之外的那个部分标上绿色(纯为了演示用)。...Office加载使用Web技术构建的,与 Excel 进行交互,这要还是靠 Javascript 语言。...选择 JavaScript 语言花了点时间,最后确认使用 TypeScript,更接近于 C# ,确实要好用多了。 九九乘法表 【创建工作表】 创建工作表,还是花了不少时间,毕境还是不太习惯。...最后是在 OfficeHelpers 空间中找到了,这点是跟 VBA/VSTO 不一样的地方,但是一通百通,明白了就 OK 了,下回专门为这个空间作个介绍吧,代码如下: OfficeHelpers....forceCreateSheet(context.workbook, "9X9"); 【打印乘法表】 上一课也讲了如何为单元格赋值,有了上课的基础,这里的代码就不是问题了。

1K60

Jupyter Notebooks嵌入Excel使用Python替代VBA宏

要安装PyXLL Excel加载“ pip install pyxll”,然后使用PyXLL命令行工具安装Excel加载: >> pip install pyxll >> pyxll install...使用pip安装pyxll-jupyter包: >> pip install pyxll-jupyter 一旦安装了PyXLL Excel加载和PyXLL-Jupyter软件包后,启动Excel将在PyXLL...在本文的其余部分,我将向你展示如何: 使用Jupyter笔记本在Excel和Python之间共享数据 在笔记本上写Excel工作表函数(udf) 脚本Excel与Python代替VBA 从Excel获取数据到...编写自定义Excel工作表函数(或“ UDF”)。...使用PyXLL,你可以完全用Python编写功能齐全的Excel加载Excel是一种出色的交互式计算工具。添加Python和Jupyter将Excel提升到一个全新的水平。

6.3K20

【视频】Excel-DNA开发自定义函数,效率高,用户体验棒,快来试试

2、visual studio社区版不能开发VSTO,之前可能信息了解有延误,现在的visual studio社区版已经可以开发VSTO,没有版权的纠纷和负担,大家赶紧进来VSTO世界吧。...Excel-DNA开发自定义函数,把整个.net的庞大资源搬到Excel里面,开发效率高,只需要简单几段代码,把原生的.net给我们做好的各样的类库函数、方法,照搬过去,同时,还有庞大的外部.net程序员给我们写好的大量的现成的函数...最终只需要给用户一个文件(已经把多个文件打包好),用户最简单的双击就可以立马使用,录个小视频告诉用户或以在加载里把文件加载进去,不需每次双击打开,用户可以回到熟悉的工作表函数里输入一个简单的函数,只需理解什么叫参数...实在是因为在现在信息泛滥的时代,付上很大的心血,连一个阅读量都没法得到,看着一些使用各样手段、标题党等来吸引了大量的阅读的低质内容,对比之下,实在没动力再做下去。

90030
领券