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

Excel催化剂开源第19波-一些虽简单但不知道时还是很难受知识点

通常许多知识都是在知与不知之间,不一定非要很深奥,特别是Excel这样应用工具层面,明明已经摆在那里,你不知道时,永远地不知道,知道了,简单学习下就已经实现出最终功能效果。...查找枚举型完整命名空间 在录制宏,得到代码,虽然绝大部分是很容易改写成VB.Net或C#代码,但有一个小问题是当录制出来代码有枚举类型时,在VBA里枚举是不带命名空间,在VSTO里,是需要补全此命名空间...以下为VBA代码,通过录制宏即可得到,将单元格内容居中显示。...用户的话,可以供用户修改,程序级就是不修改,固定保存到程序,比硬代码写在代码里维护要方便。...对于我们OFFICE使用颜色,就是Ole颜色,对应于VBA接口Color属性 一般来说在VSTO.Net环境下,引用颜色是标准.Net颜色,需要和OFFICE颜色进行转换,转换代码也异常简单

78730

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

上篇提到如何Excel界面上拿到用户数据,另外反方向怎样输出给用户数据,也是关键之处。 VSTO最大优势是,这双向过程,全程有用户交互操作。...在VSTO,用户随时在Excel最强UI前端中生产数据,同时也在获得数据结果后,无缝地利用Excel强大数据处理能力进行数据再次加工如Vlookup一些其他信息进来,做个图表展示等等。...VSTO程序在用户全程数据链条,都无缝地参与了,只在用户无法解决复杂数据转换时,才使用二次开发进行处理,处理完,立即可进行下游其他操作,用户体验绝对是一流。...言归正传,如何DataTable数据导出至单元格区域 在传统VBA方法,有ADO某个方法CopyToRange,直接将DataRecordset数据输出至单元格区域。...在VSTO,提供了ListObject数据对象,区别于传统VBA能够使用ListObject。

2.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

Excel催化剂开源第16波-VSTO开发之脱离传统COM交互以提升性能

VSTO开发或其他COM技术开发过程,甚至VBA也是,在和Excel交互,难免会遇到性能瓶颈问题,COM技术交互实在太慢,对大量数据读写等操作,耗时太长,容易卡用户界面以为是程序死机等等。...在VSTO调用NPOI和EPPLUS,又是怎样一翻境界呢?...因Excel催化剂主要是为数据分析群体服务,其中大量场景是面积大数据量,它大量使用了此两大累库,实现一些数据读取和数据导出功能以提升程序性能。 为何要同时使用两大开源类库?...在Excel催化剂上使用场景 数据导出场景 在前一波中提到,DataTable数据导出Excel单元格区域上,我们已经提及到若数据量大,改用EPPLUS来导出,在EPPLUS上将数据导出到工作表,只需一个现成已封装好方法...在Excel单元格管理相关功能上,大量使用了EPPLUS类库作这些遍历访问,性能十分优秀。

86830

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

面向对象编程,代码管理更方便,其实本人也不太有面向对象编程思想,不能编出给其他人用类,但却可以源源不断地用别人封装好类库,属于编程群体使用者,非制造者。 2....学习资料很匮乏,一开始想着VBA转VB.net,语法是同一母系,门槛不高,但入门后发现很难再有更多资料介绍了,C#语言倒还好些,视频、书籍都比较丰富,但需要给自己一个决心,狠狠啃上个把月,才能入门成功...开发自定义函数利器,VSTO开发自定义函数在发布给用户机器使用时麻烦,要对注册表注册,需要管理员权限,但Excel-DNA开发完全没有这些烦恼,用户双击即可打开使或进行加载项载入,下次打开Excel...可以利用作者实现异步功能,开发数组函数可以不需用户Ctrl+Shift+Enter麻烦输入,直接像普通函数一样输入,但最终可以返回多个,同时在运算效率和性能得到显著提升。 1.8....开发非自定义函数以外功能,如功能区开发等,没有VSTO来得方便 内容预告 今晚文字写得有点多,没时间录视频,明晚录个视频给大家感受下Excel-DNA魅力,敬请期待。

4.4K41

Excel催化剂开源第43波-Excel选择对象Selection在.Net开发使用

Excel二次开发有一极大优势所在,可以结合用户交互进行程序运行,大量用户交互,都是从选择对象开始,用户选择了单元格区域、图形、图表等对象,之后再进行程序代码加工处理,生成用户所需最终结果...所以熟练处理选择对象,尤其关键,而在VBA里使用方法,来到.Net特别是C#语言下,就需要另外代码处理,希望此篇分享给VBA转VSTO朋友们带来一些帮助指引。...Debug.Print 1 End If End Sub 在C#,想引用TypeOf方法,就要引用VisualBasicDll,麻烦,其实在C#里,可以直接用 is 和 as 语句来实现此类判断...此代码,用户选定Selection对象,有三类 单元格区域,类型为:Range,只获取单元格区域下形状。 多个形状,类型为:DrawingObjects,获取选中多个形状。...催化剂大量功能,都是一点一滴地开发出来,但愿这些开发过程遇到小细节,小坑小洼分享,能够带给广大后来学习者一些指引。

1.2K20

Excel催化剂开源第30波-在Excel上尽情地使用LINQ

在.Net世界,恰恰提供了这样能力,用LINQ,仿佛回到了写SQL语句查询环境,对编辑使用各种对象集合,在排序、筛选、去重等SQL语句常用功能上,在LINQ帮助下,一样可以对代码集合对象进行这些操作...所以在VBA世界,对某对象进行排序、筛选、去重等操作,在VSTO世界,使用LINQ来操作,将变得十分简单。...,过滤隐藏、错误、空等 public static IEnumerable GetUsedDataValuesFromActiveSelection()...= Common.ExcelApp.Intersect(selRange, selRange.Worksheet.UsedRange); //只要可见单元格,且只要有单元格...结语 LINQ真的是.Net语言一个非常好用技术,可以让代码写起来无比流畅,非常值得学习掌握,当然VBA转到VSTO开发群体,也优先学习这个技术,让自己代码写出来,更加.Net化,而不是简单只是语法转换

1.8K20

Excel催化剂开源第14波-VSTO开发之单元格区域转DataTable

Excel开发过程,大部分时候是和Range单元格区域打交道,在VBA开发,大家都知道一点是,不能动不动就去遍历所有单元格,那性能是非常糟糕,很多时候,是需要把整个单元格区域装入数组再作处理...在VSTO开发,难不成还要用VBA这套老掉牙东西来做吗?VBA二维数组在.Net世界,真的一无是处,太多比它好用东西存在,其中笔者最喜欢用是DataTable这样结构化数据结构。...从单元格到DataTable,其实也就几句代码事情,当数据进入到DataTable后,可以使用许多数据库技术进行增删改查,特别是查询方面,遍历数据行记录变得何等轻松,因其是结构化数据,访问某列某行数据...单元格区域加载至DataTable内,然后才是真正VSTO开发,在.Net世界,有了Excel源数据,再经过许多轻松方便轮子功能,快速地实现数据转换,在Excel催化剂中大量使用(因笔者是数据库技术资深玩家...最后,数据在程序内,最终需要返回给用户界面,即Excel单元格区域,又是怎样实现最为合理呢,请继续关注下篇讲解。

1.5K20

Excel催化剂开源第51波-Excel催化剂遍历单元格操作性能保障

Excel催化剂推出这一年多时间里,经常性听到一种声音,大概意思是真正会写代码的人,都不会看上Excel催化剂写出来功能,自己造一个更舒服贴心,仿佛会一点VBA就可以天下无敌一般,也好像Excel...这里不对此看法置评,只用事实说话,看看会一点VBA的人,能否造出以下超强性能保障代码功能来。 遍历单元格性能问题 学过VBA群体,都知道遍历单元格是一个很慢过程,最好将其放进数组再遍历。...为何会慢这个问题,可能就没有深入研究过,而笔者用自己不专业语言表达下原因,是因为VBA或VSTO等代码与Excel交互是用是COM通信,这个COM通信非常臃肿,遍历过程,不断地来回通信,产生了十分低效性能...但在VSTO.Net世界,这个需求非常刚需,特别是服务器级别的应用,不可能再用COM接口来通信应付高并发性需求。...世界,可以调用一切专业程序员所写给我们轮子库,相对VBA开发来说,有天然优势,有追求群体,不妨再走一步,走出VBA舒适区,拥抱VSTO开发,会是一片更广阔天空。

85720

Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

Excel催化剂几大辅助录入功能(数据验证保护、数据多级联动输入、关键词模糊智能匹配输入),用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入,用了一个VSTO...一般来说控件都是放到窗体或任务窗格,但Excel同样支持将控件放到工作表单元格上,如前面提到picturebox容器,放到单元格区域上,然后在容器上发图片,实现插入图片功能,同样地也可以存放单选、复选这些控件...在VSTO框架下,有一革命性突破是,可以放我们自定义控件,这个具体和VBA自定义Active控件有什么不一样,就不太知道,但起码VSTO放自定义控件,开发成本极低。...自定义控件,可直接用到工作表单元格 具体实现原理 通过用户配置操作,将需要进行快速录入区域记录下来,用SelectionChange事件来响应,若用户选择到这些单元格时,就激发事件方法,显示自定义控件...框架下,有大量微软工程师为我们搭建好底层技术,使我们在上层构建业务代码时变得如此轻松,此篇给大家展示了在工作表单元格区域上创建自定义控件能力,发挥得当,较直接弹出窗体效果要友好得多。

1.3K10

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

最后是在 OfficeHelpers 空间中找到了,这点是跟 VBA/VSTO 不一样地方,但是一通百通,明白了就 OK 了,下回专门为这个空间作个介绍吧,代码如下: OfficeHelpers....forceCreateSheet(context.workbook, "9X9"); 【打印乘法表】 上一课也讲了如何单元格赋值,有了上课基础,这里代码就不是问题了。...再加上一个循环就能 OK 了,而且循环语法与 TypeScript 基本一致,关键代码如下: sheet.getCell(i, j).values = [[fmlTxt]]; 【标注颜色】 同样是一个循环...context.sync 在 OfficeJS API 示例代码,总能看到这样一句代码: await context.sync(); 从官网上查询一番,得到意思大概是这样,之前代码只是添加到内部执行队列...而且文档还提到,应该尽量减少同步函数调用次数。每个 sync 都会造成宿主应用程序(此处是 Excel额外开销,尤期是在 Office Online 时,成本更是大大增加了。

1K60

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

VBA代码 这说明在Excel高级开发群体,特别是VSTO、COM加载项开发群体,还是守口如瓶,仿佛越是高级开发者,越对自己掌握“核心”技术保密,希望Excel催化剂这一系列开源文章对此风气有所好转...2.VSTO开发的确还是很冷门,没有进入专业开发者视野 对于工作表密码破解这些,肯定是OFFICE开发者专业领域,就算国内不开源,找国外,也没找到多少,所以此篇简单开源,还是有此必要性。...代码实现 工作表保护破解 在微软官方文档,看到工作表保护在Excel2013上得到增强,着实吓一跳,以为是旧破解代码肯定会失效。...方式未能破解成功,印象还有一个问题是不懂得如何改写回.NetC#代码,看到是一大坨VBA代码,也看不懂。...此篇简单地实现广大开发者广为熟知功能,代码换成了C#形式,可在VSTO上实现此功能,希望此代码段在愿意学习、查找的人手中能被找到并复用起来。

99940

Excel催化剂开源第8波-VSTO开发之异步调用方法

VSTO开发过程,因其和普通Winform开发有点差别,具体细节笔者也说不清楚,大概是VSTO插件是寄生在Excel,不属于独立进程之类,其异步方法调用时,未能如Winform那样直接用await...使用场景 在Excel上直接使用异步方法,貌似有上述提及问题,不像Winform程序那样,需要Excel上调出窗体,再从窗体上作异步方法操作,直接调用的话,遇到用户用键盘、鼠标交互Excel操作会报错...以下举例Excel催化剂批量下载文件功能。...dstFilePath); } } } else//当目标单元格没有时...因为VSTO特殊性,可能这些问题,在专业程序猿群体,不会遇到,但在VSTO开发群体,这里的确是个大坑,希望给大家填补此坑后,大家可以更顺畅地写出更好代码。

62120

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

题外话 本人也是从ExcelVBA语言入门了编程世界,然后很偶然机会接触到VSTO,并且在一位热心网友一路帮助下,算是入门了C#语言,现在可以灵活地用C#实现自己想要一些小功能(大部分是抄百度和...例如今天介绍几个加密函数,在.Net Framework类库里,直接有现成代码,几乎可以直接调用程度,对于一些非OFFICE环境内功能实现来说,使用VSTO开发或C#、VB.Net开发,开发效率还是有很大提升...在VBA代码调用加解密函数方法 说到重点,VBA开发者可能更多场景还要回到自己在VBA代码想要调用其他语言开发好函数,例如此篇自定义函数。...,重新定义Excel函数学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据...Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA 因插件使用VSTO开发技术完成,插件安装需要电脑满足相关环境配置才能运行

3.1K10

跟AI学C#编程-007:do...while循环

跟AI学C#编程-007:do...while循环 在学习VB.net VSTO for Excel,发现很多.NET库在C#引用比较方便,所以学习一下C#, 努力加油..........在C#,do...while循环如何应用,举例说明 回答1 在C#,do...while循环是一种控制流语句,它允许代码块重复执行,直到满足指定条件为止。...; do { Console.Write("请输入你猜测: "); guess = int.Parse(Console.ReadLine()); // 读取用户输入 if (guess...在学习VB.net VSTO for Excel,发现很多.NET库在C#引用比较方便,所以学习一下C# 如果对你有帮助,请转发给大家免费学习 学习记录 序 =====文章列表====== 1 C#...编程-001:C#简介 2 C#编程-002.C#与VB.net区别 3 C#编程-003.数据类型 4 C#编程-004循环语句for循环 5 AI学C#编程-005:foreach循环如何应用 6

12210

Excel催化剂开源第9波-VSTO开发图片插入功能,图片带事件

例如一个很经典需求是将插入缩略图放大操作,没法点击、双击之类事件响应对应放大操作。 在VBA方法,还有一个方式,用窗体控件Image,可以实现图片插入后有事件关联。...窗体控件Image方法插入 但很遗憾是,这个方法插入图片,当没有点选图片时,图片会有些模糊情况。具体可对比下图左右部分。这个模糊问题,还是老大难,难于达到完美。...如果换成是VSTO宿主项PictureBox,就完美解决了。 两种不同窗体控件方式插入图片 例如下图中,用鼠标右键事件,调出上下文菜单。...和Excel催化剂双击图片进行图片下载本地并调用Windows图片查看器实现图片放大功能。...,可拿到文件名,我初始单元格地址,为后面有可能插入过行、列来重新定位。

1.4K40

Excel催化剂开源第21波-使用Advanced Installer打包VSTO几个注意问题

VSTO项目开发完毕完,最终需要分发给用户,需要Excel催化剂用是Clickonce发布方式,但也面临到部分用户环境要求太高,设置过程太繁锁,而要求有一些简单安装方式,用打包工具将其打包为一个EXE...Excel催化剂一直也同样有提供离线版打包工具打包成EXE文件一键安装方式,不过鉴于Excel催化剂功能还在不断迭代开发,打包方式,暂时还不会做自动更新功能,所以不建议使用离线版安装 在Excel...在非向导可以看到有多个类型修改,但不管用 解决办法:有可能VSTO项目,Excel读取时,只会在注册表Current User上目录下寻找插件,管理员权限安装,不会在当前Current User上写入条目...选择vsto文件 想在用户安装过程,同时运行其他程序 这里说其他程序,并非指的是VSTO运行时、.Net Framework框架这些,而是可以运行其他命令。...例如Excel催化剂因在线版自动更新要求,将许多配置文件给分离出来,重新做了个Console程序供用户手动将这些配置文件复制到程序数据文件夹,在离线版安装过程,想一步到位,无需提示用户多一步运行Console

1K30

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

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

1.4K20

个人永久性免费-Excel催化剂功能第26波-正确Excel密码管理之道

仅谈下Excel各种密码,其他OFFICE文档类似 日常办公使用,对企业数据存储量最大,要数Excel文件,和各种系统交互最频繁也是Excel文件。...工作表保护密码 此密码仅作用于当前设置工作表,可保护工作表行、列不能被增删操作,指定单元格内容不能被修改等。 5....Excel各种密码破解难度 5种Excel密码,只有工作薄打开密码,在目前来说,有一定破解难度,其他密码都如同虚设。其中旧xls文件,工作薄打开密码也是较弱,同样面临着被秒破风险。...因为Excel模板设定,通常有赖于各单元格内容填写规范,工作表名称固定,某些行列单元格不可修改等多方面来综合规范,才能保证模板正常使用。...,重新定义Excel函数学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据

1.4K20

Excel催化剂开源第41波-网络采集类库及工具分享

在VBA开发网抓程序,会用到xmlhttp/winHttp.winHttprequest.5.1等组件,当时笔者也是这样进入了网抓领域,这些都是非常过时东西,在.Net开发,有大量更好用轮子使用...,在Excel催化剂开发过程,也会用到,在此向大家简单分享,希望对VBA转VSTO开发群体有所帮助。...苏飞httpHelper 这个类库是笔者一开始学习C#和在C#上学习网抓第一个类库,可能现在已经迭代了好多版本了,网址是这个,自己有兴趣可以再了解。...dstFilePath); } } } else//当目标单元格没有时...结语 以上啰嗦了这么多,希望此文真心能够带给广大想学习网抓朋友们一些指引,特别是想在VSTO上实现网抓,或者直接清醒过来,不再被收智商税,选择一款现成工具作起点,站在巨人肩膀上使用网抓。

1.1K30
领券