Excel催化剂开源第40波-Excel插入图片做到极致的效果
不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理。
Excel催化剂虽然开发水平有限,但也在有限的能力下,尽最大的努力做到自己可以过关的出街成品。
此篇着重谈下思路性的问题,代码因为太久远之前写的,现在看回也是一坨坨的,真需要时可能重新写一轮更方便。
Excel插入图片的细节追求
可能在之前的文章中,也偶尔做了一些分享,自己也不太记得分享过哪些了,这里再重新梳理下,有重复提及的部分就权当复习好了。
一、插入图片的刚需效果
起码图片能够真正插入到工作表中,并且始终保留在工作表中,这点要求大家都可以做到
图片随单元格移动、缩小、放大而变化。
这一点在Excel催化剂上因为技术原因,需要手动处理下,也不算太大工作量,就顺手点下鼠标自动调整下。其他的图片插入功能可以自动调整。
- 图片在排序、复选过程中,仍然保持正确的位置跟随
这一点Excel催化剂也需要使用上一点说到的手动操作一下,不算麻烦,习惯一下就行。
- 满足多种场景的图片插入
图片插入,总共总结到的有以下几种类型:按单元格内容匹配插入(分只插入一张还是插入所有或指定最大张数)、在合并单元格区域内插入、在批注上插入。
这些功能,只要努力一下,也是可以实现的,非技术问题。
能满足以上需求的算是合格水平了,但还是有些作为商业收费性卖点的插件,仍然未能满足这些最基本的要求。
二、可提升的细节部分
以下说到的,在Excel催化剂当中,都已经完全实现出来,细节决定一切,带领大家来领略一翻。
- 频繁插入同一图库位置的记录和配置功能
这个也是不难实现,但对用户的使用体验提升非常明显,一般情况下,都是固定的几个图库的位置找图片,每次都要繁锁地选择文件夹,效率十分低下,让人烦躁。
就算不给配置,大量的VSTO开发者用的是.Net里的文件夹选择控件,那控件太难用,不能直接复制粘贴路径,快速跳转自定义快捷路径,更应该用的是OFFICE对象里的文件夹选择功能,和日常的选择功能的窗口界面一致,好用太多。
- 图片的长宽比例自动缩放
这个在本人没有使用现今的picturebox装载图片技术时,也用普通的技术实现出来了,可能绝大部分插件都未见有这个细节上的处理,特别是在多种不规则的图片,非理想化的统一尺寸时的图片批量插入尤为显得重要,插入的图片没有经过等比例缩放,图片被变形拉升,出来的效果非常糟糕。
- 图片可轻松进行放大处理
一般插入的图片,都是缩略图的小图形式插入,如果想看细节一点的图片信息,放大操作也是很需要的,同样地绝大部分的插件开发者都没有为这一方面去考虑,同样就算没有用Excel催化剂的技术来开发,这一点,用传统的方法也可勉强达到想要的效果,是有做和没做的区别,非技术的问题。
- 图片遮挡单元格边框问题
如果需要做数据排版要求的话,有图片在内,若图片将单元格边框进行遮挡,排版过程会显得很别扭和不自然,这点当然不是技术性问题,人人皆可做到的部分。
- 多次插入同一图片的性能问题
插入图片这个动作,对于一些图片尺寸较大的图片来说,还是比较影响插入速度的,如果同样的图片,每次还是要重新从硬盘文件中去读取再插入,是很影响性能的。
在Excel催化剂的实现效果中,当插入重复性的图片时,会从已插入的图片中直接复制操作,速度非常快,这个细节在特定时候就显得差异来了。为了这个细节,要写许多代码来支持它。
- 图片插入后的大小保留问题
原始图片有大有小,当大图片时,插入后,可能想保留较大的尺寸可以看到更多细节,或者某些场景只需缩略图大小即可,大量插入大图片,整个文档变得非常臃肿膨胀,最后用户却不得不抱怨自己的机器弱爆了,开个表格都卡个半天。
其实在软件细节方面可以做好多功夫来避免它的,在Excel催化剂中,可以自行决定图片插入后的大小,使用了新技术,在细节优化上有很大的优势。
- 插入图片可满足自由排版需求
一般来说,插入一行一张图片的标准表格式清单报表,阅读效果较差,因为图片已经占了很高的位置,整屏下来,不能看到多少明细信息。
更佳的方式是用在标签式结构的报表上插入图片,可以有一个单元的概念,多行多列重复排列,信息量更大,阅读效果更好。
在Excel催化剂中,将其定义为带图片的自由报表的输出,很大程度上,比各种系统生成的报表还要来得好看、易读、好用。用户全程参与设计排版,细节部分完成自己控制,把自己的美学、对业务指标的理解、重点标示什么等能力统统用起来,做出最合适自己看的数据报表。
- 根据单元格字符查找图库文件夹时的策略,有查找子文件夹和单元格字符精确查找两种组合可用。
查找过程中,除了这个查找组合外,当然也要考虑到性能问题,找到后就立即退出后面查找,或者在需要返回多张图片,不得不再次查找时,也设置控制开关,返回多张图片的上限,当查找完就可退出,保证性能同时也满足业务实际的多样性场景需求。
因着以上的各种细节处理优化,在插入后的衍生功能如导出图片、删除图片、调整图片大小布局等,也将变得更加容易和可行,形成在图片场景在Excel上的全闭环。
Excel催化剂中的实现
具体的实现效果,可参看以下几篇文章
第11波-快速批量插入图片并保护纵横比不变https://www.jianshu.com/p/9a3d9aa7ba7e
第13波-一键生成带图片的标签式自由报表https://www.jianshu.com/p/af0ac9ce1819
第49波-标准数据结构表转报表样式结果https://www.jianshu.com/p/5f559d8ccdc3
第54波-批量图片导出,调整大小等 https://www.jianshu.com/p/16d3b4b2194d
Excel催化剂愿景
但愿Excel催化剂的一点一滴的努力,能够给市场带来一些新鲜的气息,做一个产品,和认真做一个产品,负责任地做一个产品,和将一个产品做到极致化。
少一点套路,少一点浮躁,少一点所谓可点可圈的营销手段,多一点在细节上深挖的工匠精神。
技术交流QQ群
QQ群名:Excel催化剂开源讨论群, QQ群号:788145319

关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q


取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。
最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!
关于Excel催化剂作者
姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)
技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。
擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。
2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。
和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。
Excel催化剂开源第40波-Excel插入图片做到极致的效果的更多相关文章
- Excel催化剂开源第9波-VSTO开发图片插入功能,图片带事件
图片插入功能,这个是Excel插件的一大刚需,但目前在VBA接口里开发,如果用Shapes.AddPicture方法插入的图片,没法对其添加事件,且图片插入后需等比例调整纵横比例特别麻烦,特别是对于插 ...
- Excel催化剂开源第51波-Excel催化剂遍历单元格操作性能保障
在Excel催化剂推出的这一年多时间里,经常性听到一种声音,大概意思是真正会写代码的人,都不会看上Excel催化剂写出来的功能,自己造一个更舒服贴心,仿佛会一点VBA就可以天下无敌一般,也好像Exce ...
- Excel催化剂开源第50波-Excel与PowerBIDeskTop互通互联之第四篇
答应过的全盘分享,也必承诺到底,此篇PowerBI功能分享的最后一篇,讲述如何导出数据模型的元数据,笔者定义其为模型的数据字典. 此篇对应功能实现出自:第6波-导出PowerbiDesktop模型数据 ...
- Excel催化剂开源第49波-Excel与PowerBIDeskTop互通互联之第三篇
在PowerBIDeskTop开启的SSAS服务,和Sqlserver所开启的一个本质的区别是,前者其端口号是随机生成的,即上一次打开获得的端口号,下一次关闭后再打开,系统分配给它新的端口号,而后者因 ...
- Excel催化剂开源第47波-Excel与PowerBIDeskTop互通互联之第一篇
当国外都在追求软件开源,并且在GitHub等平台上产生了大量优质的开源代码时,但在国内却在刮着一股收割小白智商税的知识付费热潮,实在可悲. 互联网的精神乃是分享,让分享带来更多人的受益. 在Power ...
- Excel催化剂开源第48波-Excel与PowerBIDeskTop互通互联之第二篇
前一篇的分享中,主要谈到Excel透视表连接PowerBIDeskTop的技术,在访问SSAS模型时,不止可以使用透视表的方式访问,更可以发数据模型发起DAX或MDX查询,返回一个结果表数据,较透视表 ...
- Excel催化剂开源第26波-Excel离线生成二维码条形码
在中国特有环境下,二维码.条形码的使用场景非常广泛,因Excel本身就是一个非常不错的报表生成环境,若Excel上能够直接生成二维码.条形码,且是批量化操作的,直接一条龙从数据到报表都由Excel完成 ...
- Excel催化剂开源第43波-Excel选择对象Selection在.Net开发中的使用
Excel的二次开发有一极大的优势所在,可以结合用户的交互进行程序的运行,大量用户的交互,都是从选择对象开始,用户选择了单元格区域.图形.图表等对象,之后再进行程序代码的加工处理,生成用户所需的最终结 ...
- Excel催化剂开源第27波-Excel离线生成词云图
在数据分析领域,词云图已经成为在文本分析中装逼的首选图表,大家热烈地讨论如何在Python上做数据分析.做词云图. 数据分析从来都是Excel的主战场,能够让普通用户使用上的技术才是最有价值的技术,一 ...
随机推荐
- Sql 2017 安装到sql_shared_mrconfigaction-install-confignonrc-cpu64卡住不动问题
解决方法:取消功能选择的实例功能和共享功能中的"机器学习服务(数据库内)""机器学习服务器(独立)"
- DateTimeToGreenUnix
@暗夜魔尊 { Unix date conversion support with time-zone detect } function DateTimeToGreenUnix(const AVal ...
- BI-学习之 商业智能平台的引入(传统关系型数据库的问题)
早在 SQL Server 2005里面就有了这种 完整的商业智能平台了,那时候Nosql什么的都还停留在概念性的提出阶段,发展至2009年才一下子蹦了出来变得众所周知了.当然这个要扯就扯远了,咱们还 ...
- Java的Qt绑定 jambi
大二在学java,所以有时会写点java的小程序,可是习惯了qt的界面,使用AWT和swing让我有些不适,后来发现了jambi,才知道原来早就有了java的绑定版,所以迫不及待的安装了上. ...
- LOG4NET图文教程
LOG4NET教程 一:简介 从操作系统到大多数的大型软件,都会有自己的程序运行时的日志跟踪API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而软件开发人员需要一套强大的日志系统来记 ...
- 使用 acl_cpp 的 HttpServlet 类及服务器框架编写WEB服务器程序(系列文章)
在 <用C++实现类似于JAVA HttpServlet 的编程接口 > 文章中讲了如何用 HttpServlet 等相关类编写 CGI 程序,于是有网友提出了 CGI 程序低效性,不错, ...
- Md2All:好用的markdown文件转换工具,文章迁移微信公众号的利器
目录 简介 使用体验 极速上手 更多功能 总结 简介 markdown以简单的语法和强大的功能,征服了无数技术创作者,几乎主流的技术博客网站都开始支持markdown语言撰写博客.但是微信公众号的文章 ...
- Hibernate注解(二):关联关系映射注解
关联关系映射注解以下项目均在之前相应代码的基础上进行的修改.这些项目均需要做的是: 删除映射文件 在hibernate.cfg.xml中注册实体类 注解的重要位置在实体类中关联属性上.这里是关联 ...
- 跟我学SpringCloud | 第一篇:介绍
首先讲一下我为什么要写这一系列的文章,现在网上大量的springcloud相关的文章,使用的springboot和springcloud的版本都相对比较老,很多还是在使用springboot1.x的版 ...
- Unity Shader常用函数,标签,指令,宏总结(持续更新)
极端常用: UnityObjectToClipPos(v.vertex); 最基本的顶点变换,模型空间 ==>裁剪空间 mul(unity_ObjectToWorld, v.vertex); 顶 ...