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

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

VSTO开发中,难不成还要用VBA这套老掉牙的东西来做吗?VBA的二维数组在.Net的世界中,真的一无是处,太多比它好用的东西存在,其中笔者最喜欢用的是DataTable这样的结构化的数据结构。...结构,DataTable的数据列类型,有时保留Excel的数据类型方便些,有时全部变为String类型方便些。...{ DataTable dt = new DataTable(); foreach (Excel.Range cell in titleRow.Cells...private static DataTable InsertDataToDataTable(Excel.Range dataRangeExcludeTitleRange, DataTable dataTable...DataTable内,然后才是真正的VSTO开发,在.Net的世界中,有了Excel的源数据,再经过许多轻松方便的轮子功能,快速地实现数据的转换,在Excel催化剂中大量使用(因笔者是数据库技术的资深玩家

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

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

Excel催化剂推出的这一年多时间里,经常性听到一种声音,大概意思是真正会写代码的人,都不会看上Excel催化剂写出来的功能,自己造一个更舒服贴心,仿佛会一点VBA就可以天下无敌一般,也好像Excel...为何会慢这个问题,可能就没有深入研究过,而笔者用自己不专业的语言表达下原因,是因为VBA或VSTO等代码与Excel交互是用的是COM的通信,这个COM通信非常臃肿,遍历过程中,不断地来回通信,产生了十分低效的性能...但在VSTO的.Net世界中,这个需求非常刚需,特别是服务器级别的应用,不可能再用COM接口来通信应付高并发性需求。...EPPLUS遍历单元格方式 以下应用的功能原始出处为:第75波-标签式报表标准数据源https://www.jianshu.com/p/a876134c9e8f 遍历单元格在EPPLUS上非常简单,和直接在...直接上代码 此段代码是第75波核心代码,用于将查找到的结果存储为新的表格内容,最终返回给用户一个结构化的数据源。

88420

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

所以在VBA的世界中,对某对象进行排序、筛选、去重等操作,在VSTO的世界中,使用LINQ来操作,将变得十分简单。...例如经常需要遍历单元格区域,肯定少不了For Each+IF等代码,但使用了LINQ后,真心变得很简单,特别是操作一个多列的表单结构的数据时,前面提到笔者喜欢将其转换为DataTable,因为这样的数据结构就可以用上了...除了前面提到的区域DataTable的方法外,其实笔者还用到过LinqToExcel这个类库,同样也是非常好用,有兴趣的朋友们,可以搜索了解下,示例文件也是做得很丰富易懂。...>(); } } 将Excel里的集合对象转换为LINQ可以调用的方法,只需使用一下Cast转换一下即可,十分方便。...结语 LINQ真的是.Net语言一个非常好用的技术,可以让代码写起来无比流畅,非常值得学习掌握,当然VBA转到VSTO开发的群体,也优先学习这个技术,让自己的代码写出来,更加.Net化,而不是简单的只是语法转换

1.8K20

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

上篇提到如何从Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处。 VSTO最大的优势是,这双向的过程中,全程有用户的交互操作。...在VSTO中,用户随时在Excel最强UI前端中生产数据,同时也在获得数据结果后,无缝地利用Excel强大的数据处理能力进行数据的再次加工如Vlookup一些其他信息进来,做个图表展示等等。...DataTable当然可以很轻松地转换为二维数组,再用Range.Resize的方式将二维数组返回给单元格区域,这不失为一个方法,但此处再次强调,这不是最优的方法。...在VSTO中,提供了ListObject的数据对象,区别于传统VBA中能够使用的ListObject。...它是在Microsoft.Office.Tools.Excel命名空间内,是VSTO的宿主项,较传统的ListObject,其命名空间为Microsoft.Office.Interop.Excel,新的

2.4K30

利用Python将Word试卷匹配转换为Excel表格

需求 有一个下面这种形式的word表格: ? 希望能转换为下面这种格式的excel表格: ?...ABCDEF]\)[^(]+") # 从word文档的“一、单项选择题”开始遍历数据 for paragraph in doc.paragraphs[5:25]: # 去除空白字符,将全角字符半角字符...question_type2data = OrderedDict() # 从word文档的“一、单项选择题”开始遍历数据 for paragraph in doc.paragraphs[5:]: # 去除空白字符,将全角字符半角字符...最终保存结果: df.to_excel("result.xlsx", index=False) 完整代码 最终完整代码: import pandas as pd import re from docx...in range(1, max_options_len+1)]) # 题型可以简化下,去掉选择两个字 df['题型'] = df['题型'].str.replace("选择", "") df.to_excel

3K30

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

(如果是xlsm或文档型VSTO项目可以做到数据在文件中,但代码也仅能对此文档有效,对其他文档无效,也不是此处需要的完美解决方案) 大部分人能想到的方案是在自定义属性里CustomDocumentProperties...且此对象不止于在VSTO内使用,在VBA上也同样有此对象可供计用。...CustomXMLPart对象模型 虽然有此对象,但其要求的数据类型是xml,在VBA环境里操作xml将是个非常痛苦的事情,但在VSTO上操作,简直不能再简单的事情。...在.net环境下,特别是Ado.Net中,只需一个方法即可将一个DataTable换为XML或将一个XML文件还原为DataTable对象,数据配置文件,无论多复杂,都可以用DataTable很轻松地管理数据...bool isExistsPictureBox = false; if (Globals.Factory.HasVstoObject(Wb))//是否是vsto

1.3K20

Python办公自动化| word 表格excel

之前写过一篇 Python办公自动化 | 批量word报告生成工具 ,有小伙伴提出了逆向需求,即:从批量word中获取内容并写入excel,需求背景是汇总一些材料,举例:实习鉴定表、个人简历、档案等。...实际需求是这样的,现在有如下格式的若干word文档,需要录入标黄信息到excel,手工录入效率太低了,能不能用python实现呢?答案是肯定的 ?...读取行 rows=tb[0].rows 读取列 cols=rows[0].cells 读取单元格 cell=cols[0] text=cell.text 单个文件内容获取 docx 读取word中的表格时会按照最大行和最大列对表格取消合并单元格...,比如样例文件,最大行数是5,最大列数是8,他就给扩展成5 * 8的表格,而且数据自动向右填充。...xlwt写入excel

3K10

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

VSTO开发或其他COM技术开发过程中,甚至VBA也是,在和Excel交互中,难免会遇到性能瓶颈问题,COM技术的交互实在太慢,对大量数据读写等操作,耗时太长,容易卡用户界面以为是程序死机等等。...在VSTO中调用NPOI和EPPLUS,又是怎样一翻境界呢?...在Excel催化剂上的使用场景 数据导出场景 在前一波中提到,DataTable的数据导出Excel单元格区域上,我们已经提及到若数据量大,改用EPPLUS来导出,在EPPLUS上将数据导出到工作表,只需一个现成的已封装好的方法...package.Save(); } } private static void AddRowToTable(DataTable...希望此篇分享的技术,日后能够带后整体VSTO开发插件的开发者们有技能的提升。

89830

个人永久性免费-Excel催化剂功能第33波-报表形式数据结构标准数据源

今天Excel催化剂再次送上批量化操作,将不规则的难以立即分析使用的报表形式数据源转换为标准的数据库结构数据源。...业务场景 大量的数据分散在零散的Excel表格中,需要对其进行合并汇总,才能做分析工作。...转换后的结果表 隐藏的细节处理部分 前面说到,报表格标准数据源格式,知道了思路,基本可以自己简单写几句VBA代码得到想要的结果。...Excel表格分发容易,使用广泛,很适合做数据收集的工作,数据采集模板,一般以类似报表的形式来做排版,方便填写。...Excel催化剂插件下载链接:https://pan.baidu.com/s/1gC6joqGY_SIg_yONga9PaQ 因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行

1.5K40

【游戏开发】Excel表格批量转换成lua的表工具

一、简介   在上篇博客《【游戏开发】Excel表格批量转换成CSV的小工具》 中,我们介绍了如何将策划提供的Excel表格换为轻便的CSV文件供开发人员使用。...因此我们可以直接将Excel表格换为lua文件,这样就可以高效、方便地在Lua中使用策划配置的数据了。...在本篇博客中,马三将会和大家一起,用C#语言实现一个Excel表格lua的表工具——Xls2Lua,并搭配一个通用的ConfigMgr来读取lua配置文件。...首先我们来大致地说一下表工具的思路: 读取Excel表格文件的数据,依次读取配置目录下的Excel文件,然后逐个读取表里面Sheet的内容; 根据Excel表格中配置的字段类型,对数据进行校验,判断数据是否合法...Excel目录存放我们需要进行转换的Excel表格文件。LuaData目录存放转出来的Lua配置文件。Xls2Lua目录也就是我们的表工具的目录了,它包含源代码和可直接运行的表工具。

5.2K40

Excel催化剂开源第17波-VSTO开发之ADO.Net访问Sqlserver

Excel催化剂中,独树一帜地推出了Excel与数据库交互功能,目前仅实现了对Sqlserver的交互,在通用型插件中仅此一家,别无其他。...用户才会涉猎,对Excel催化剂来说,本来群体已定位为重度Excel高级用户使用,有此功能才显得插件的饱满性。...在VSTO的环境下,完全已经没有理由再用ADO这样的方式访问数据库了,虽然还保留这样的能力,而应该用上ADO.Net的方式,对ADO进行了很大的升级。...前面篇幅里提及的DataTable就是ADO.Net的其中一部分,大家可能已经可以略略地感之到它的便利性。...以下是笔者初学VSTO时,在百度上找到的热心码农写好的代码,一直沿用至今,直接上代码 具体代码因文章字数限制不能发布,可在阅读原文的简书平台上查看。

41720

个人永久性免费-Excel催化剂功能第35波-Excel版最全单位换算,从此不用到处百度找答案

函数使用示例 数字转换方面 对国人常用的万、亿作了转换,可以通过参数控制保留小数点和显示数字格式是否含万或亿的字样 时间方面 比较常用的是Unix Time常规日期,在网络世界和软件程序交互过程中,经常会用到...在此实现了两种时间的互转换 长度方面 做了一些常见的英里、海里、英寸、英尺、中国尺、中国寸等转换为标准的国际单位千米、米为单位 体积方面 做了一些常见的加仑、汤勺、调羹、盎司等转换为标准的国际单位升、毫升为单位...面积方面 做了一些常见的中国亩、公顷转换为标准的国际单位平方公里 温度方面 华氏温度与摄氏温度的互转 总结 虽然简单的一些小转换运算,但如果能够在Excel上直接进行运算,那何尝不是一种美好的体验,技术含量不高...Excel催化剂插件下载链接:https://pan.baidu.com/s/1gC6joqGY_SIg_yONga9PaQ 因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行...,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物

1.1K20

Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据

,将其输入参数统一在Excel界面进行维护,最终实现了所有接口均可由用户自己去维护参数的方式发出查询获得所有的结果,非常完美。...,再结合对Excel的深度认识,这样的功能实现,很难由单一的程序员思维可以完成,在VBA、VSTO开发群体中,由于其有相当的业务背景知识和对Excel工具的每一个功能在界面和代码层的熟练掌握,才能发挥到这种让人惊叹的效果出来...这里可认真体会下在Excel表格中做参数配置的极大优势,特别是ListObject对象的对结构化数据的最大支持。...HttpHelper httpHelper = new HttpHelper(); DataTable resultTable = null; foreach...认真看下来的人,总是会有收获的,特别是Excel催化剂并且单一的一个技术产品,它乃是集合了业务和技术的理解,才能诞生出这么优秀的符合业务需要的大量刚需功能。

49210
领券