excel里诡异的一幕?

发现microsoft 365中EXCEL的大BUG-Excel基础应用-ExcelHome技术论坛 -
手机版|关于我们|联系我们|ExcelHome
GMT+8, 2024-3-12 13:28
, Processed in 0.047242 second(s), 16 queries
, Gzip On, Redis On.
快速回复
返回顶部
返回列表
Excel可以做十字绣!之前看到有用Excel画画的,不过我觉得这跟拿ps画画没有太大的区别,但如果我们可以从像素级别重现一张画呢?完全可以。Excel的单元格可以理解为像素,把单元格的背景颜色填充为指定的颜色,只要数量足够多,就可以构成一幅精细的画,也就是开头所说的十字绣。话不多说,直接上图这是一幅用Excel画出的图,仔细看画面上面和右边有很密的东西,是Excel的行和列的标号放大看是这个样子把单元格的宽高设置成一样的,就变成了一个个方形的像素,然后再把显示比例设到最小,看起来就很清晰了渲染的过程是这个样子的,如出水芙蓉https://www.zhihu.com/video/912652514321657856期间Excel会卡死好几次,这次运气好没卡,就赶紧录了下过程配图:密密麻麻的马赛克这个效果是怎么实现的呢?原理其实很简单,就是获取图片的每一个像素点的颜色然后把它存在一个二维数组里,再用二维数组里的颜色去填充对应单元格。我用的是python+Excel VBA实现的。调用python的PIL包获取图片的每一点颜色信息,然后存在二维数组里。然后生成一个存满了颜色信息的excel表,用VBA读取单元格信息进行填充。可以看到这并不是我们常见的RGB模式颜色或者16进制颜色,而是数字,这是因为在VBA中你把RGB(255,255,255)的类型打印出来以后会发现这是一个Long类型,所以需要把RGB颜色转换成Long类型以后才可以用,转换的规则是【R + G*256 + B*65536】为什么不直接拿python生成Excel而要周折一番用VBA来填充,我一开始也是用python直接生成的,不过发现每次生成的Excel都是只有一种颜色,很诡异,就干脆拿VBA来做了对了,这个不能生成太大的图片,否则Excel会报错对于这种情况,我的解决方法是一张图片分多次输出,比方说分成九宫格输出,就可以规避这个问题了有一次一张图片要填充90万个单元格,不知为何Excel没有报错,然后Excel卡死了15min,才提示不同的单元格太多,晕~--------------------------------------------------最后来一张酷炫的自拍不好意思,太胖了以至于身体部分溢出‘(*>﹏<*)想学excel vba可以试试下面的教程哦~

我要回帖

更多关于 电脑表格突然一部分消失怎么办 的文章

 

随机推荐