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的主战场,能够让普通用户使用上的技术才是最有价值的技术,一 ...
随机推荐
- 为DataGridTemplateColumn设置快捷菜单
<DataGrid.ContextMenu> <ContextMenu> <MenuItem Command="{x:Static ApplicationCom ...
- Tomcat Java SSL
转自 - http://blog.csdn.net/szzt_lingpeng/article/details/51247980 转载自:http://my.oschina.net/cimu/blog ...
- 如何判断操作系统是64位还是32位(GetNativeSystemInfo和IsWow64Process两种方法)
64位Wnidows 里面有个叫Wow64的模拟器技术,可以使32位的程序在64位Windows 上运行. 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是 ...
- UILabel实现自适应宽高需要注意的地方(三)
一.需求图如下所示 UILabel 的高度自适应 UILabel中的段落间距可设置 图片效果如下: 调整段落适应长宽高方式: 需求: 保证"游戏玩法 ...
- ZooKeeper学习第三期---Zookeeper命令操作(转)
转载来源:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...
- CodeSmith使用SQLite Provider找不到请求的 .Net Framework 数据提供程序
关于CodeSmith5使用SQLite Provider时的报错:System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite,.... ...
- 浅析为何使用融合CDN是大趋势?
使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...
- docker部署asp.net core
上一篇文章我们成功的在win10上边安装了docker,这篇文章,我们将在docker中部署asp.net core程序, 先来一张运行成功的hello world镇楼 现在开始,首先创建一个asp. ...
- 惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!
说明 接着上次手撕面试题ThreadLocal!!!面试官一听,哎呦不错哦!本文将继续上文的话题,来聊聊FastThreadLocal,目前关于FastThreadLocal的很多文章都有点老有点过时 ...
- 小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据
跟同事合作前后端分离项目,自己对 WebApi 的很多知识不够全,虽说不必要学全栈,可是也要了解基础知识,才能合理设计接口.API,方便与前端交接. 晚上回到宿舍后,对 WebApi 的知识查漏补缺, ...