當(dāng)Excel遇上Python

image

文 | 蠻想丹壕,秋葉優(yōu)秀學(xué)員

說(shuō)到Excel拾枣,你想到的可能就是函數(shù)公式沃疮,各種數(shù)據(jù)整理,圖表制作梅肤,又或者是數(shù)據(jù)分析司蔬。

我一直認(rèn)為這就是Excel的頂級(jí)應(yīng)用場(chǎng)景了,也經(jīng)常拿這些「專業(yè)術(shù)語(yǔ)」姨蝴,去嚇唬秋葉Office訓(xùn)練營(yíng)小白們俊啼。

正所謂無(wú)巧不成書(shū),故事最精彩的地方左医,往往是劇情的反轉(zhuǎn)授帕,前兩天我就被反轉(zhuǎn)了一次,而且還是個(gè)女生浮梢。

image

玩了10年跛十,我還是第1次看到,身邊能有人在Excel畫(huà)像素畫(huà)秕硝,而且那個(gè)人不是我芥映,是一個(gè)叫做漫想的女生。

具體是怎么做的呢?我們來(lái)聽(tīng)一聽(tīng)奈偏,漫想給我們講的坞嘀,Excel遇上Python那點(diǎn)事兒。

1- Excel像素畫(huà)原理

1-讀取圖片中的RGB值霎苗,將其轉(zhuǎn)化成網(wǎng)絡(luò)色彩姆吭,最后還原成RGB值;

2-將經(jīng)過(guò)處理的RGB值存為文本唁盏;

3-新建Excel内狸,導(dǎo)入文本值;

4-借助VBA進(jìn)行填充厘擂。

2- Python讀取像素值

備注:我的python環(huán)境為3.6昆淡,我用的IDE是pycharm。

這里如何就不花篇幅介紹如何設(shè)置python環(huán)境刽严。還沒(méi)有配的小朋友昂灵,可以看這篇文章。

https://zhuanlan.zhihu.com/p/28789759

1.安裝pillow模塊

PIL(Python Imaging Library)是Python中一個(gè)強(qiáng)大的圖像處理庫(kù)舞萄,但目前其只支持到Python2.7眨补。pillow是PIL的一個(gè)分支,雖是分支但是其與PIL同樣也具有很強(qiáng)的圖像處理庫(kù)倒脓。

Pillow的文檔:https://pillow.readthedocs.io/en/latest/
Pillow的github:https://github.com/python-pillow/Pillow

在windows系統(tǒng)下安裝PIL模塊:

方法一:pip安裝

cmd進(jìn)入你正在運(yùn)行的python代碼文件夾的lib中撑螺,即包含有pip.exe文件的文件夾中,代碼為:cd 文件夾位置崎弃。例如: cd D:\python\untitled\venv\Scripts

image

通過(guò)以下代碼實(shí)現(xiàn)安裝:

pip install Pillow
image

驗(yàn)證一下是否安裝成功:

python
import PIL

如圖就是安裝成功了甘晤。(我之前安裝過(guò)了)

方法二:(不建議)下載pillow

下載合適文件后,在文件夾中安裝饲做,之前有講過(guò)线婚,只要放對(duì)了位置就行。

PIL官方鏈接:http://pythonware.com/products/pil/

2.Python實(shí)現(xiàn)代碼

通過(guò)PIL來(lái)讀取圖像的RGB值盆均,輸出到txt文本中塞弊。(代碼均有備注)

#coding=utf-8
from PIL import Image #導(dǎo)入之前安裝的包
imload = Image.open('4.jpg') #加載圖像文件,如果之后要實(shí)現(xiàn)其他的泪姨,可以換圖像文件的名稱游沿,注意!驴娃!該圖片需要在同一文件夾下奏候,否則需要絕對(duì)或者相對(duì)路徑
im = imload.convert("RGB") #轉(zhuǎn)換為RGB的格式
width = im.size[0] #獲取寬度
height = im.size[1] #獲取高度
demo = open('rgb_4.txt','a')    #為之后生成的值,生成一個(gè)txt文件唇敞,a是寫(xiě)入文件的意思
#迭代輸出蔗草,以行為單位咒彤,y在外層
for y in range(height):
  for x in range(width):
    r,g,b = im.getpixel((x,y))  #這里是重點(diǎn),用getpixel()方法獲取圖片像素點(diǎn)的RGB值
    rgb =r,g,b
    demo.write(str(rgb)+ '\t')  #寫(xiě)入文件中咒精,并且rgb之間加入制表符
  demo.write("\n")  #換行則也換行
  demo.close()  #關(guān)閉文件
image

最終镶柱,在該python文件下,就可以看到生成的txt文件模叙。

導(dǎo)出的TXT文件如下:

image

3- EXCEL填充單元格

1.準(zhǔn)備TXT文件

因?yàn)榍懊鎝ython中生成的TXT歇拆,有括號(hào)和空格,需要在讀取RGB之前替換為空范咨。

- 在【打開(kāi)】中選擇該TXT文件導(dǎo)入故觅。此時(shí)會(huì)出現(xiàn),【導(dǎo)入文本向?qū)А壳。皟刹蕉际悄J(rèn)選項(xiàng)输吏,第三步中選擇【文本】的形式顯示。這里也可以在導(dǎo)入成功后替蛉,全選所有表格贯溅,在【開(kāi)始】選項(xiàng)卡中把【格式】全部換成【文本】。

image

- 替換查找6悴椤它浅!用替換查找把括號(hào)去掉!就是CTRL+H镣煮,將【(】和【)】替換為空

- 調(diào)整列寬和行高為正方形姐霍!注意!這里寬度與行高的單位是不一樣的怎静,每列的寬度8.43單位邮弹,等于64像素黔衡。每行高度15點(diǎn)蚓聘,等于20像素∶私伲總之調(diào)整像素一樣夜牡,就是正方形啦。

2.VBA實(shí)現(xiàn)RGB填充

右擊工作表sheet侣签,選擇查看代碼塘装,就可以自由的編輯VBA代碼了~

VBA代碼:

Sub Set_RGB()
Dim r As Range, arr   #定義r
For Each r In Range("A:AFA")    #注意這里的Range中的“A:AFA”指的是列的位置,這里每次都需要手動(dòng)修改影所,所以還是有些麻煩蹦肴,等過(guò)段時(shí)間,我再優(yōu)化一下
  arr = Split(r, ",")     #利用猴娩,來(lái)分割RGB值
  r.Interior.Color = RGB(CInt(arr(0)), CInt(arr(1)), CInt(arr(2)))        #CInt的作用是四舍五入后取整阴幌,如果要取整的浮點(diǎn)數(shù)小數(shù)部分恰好是0.5的情況勺阐,則向最接近的偶數(shù)取整。
  Next
  End Sub
image

運(yùn)行VBA代碼矛双,可能會(huì)出現(xiàn)越界錯(cuò)誤9 渊抽,但是沒(méi)關(guān)系,其實(shí)已經(jīng)生成RGB顏色啦议忽!

講解VBA循環(huán)語(yǔ)句

For Each 元素 In 組合
語(yǔ)句1
語(yǔ)句2
語(yǔ)句N
Next [元素]

最后運(yùn)行代碼懒闷,并調(diào)整EXCEL界面的大小,就可以看到細(xì)節(jié)啦~

image

image

越簡(jiǎn)單的圖栈幸,實(shí)現(xiàn)起來(lái)越快捷愤估,效果也越好呀!圖片太大了速址,電腦有可能帶不起來(lái)哦灵疮!

image

image

image

image

4- 總結(jié)

是不是從沒(méi)想過(guò)EXCEL也可以實(shí)現(xiàn)如此功能?

其實(shí)只要你敢想壳繁,你就做的出來(lái)震捣。

多一點(diǎn)耐心,多動(dòng)手闹炉,這份撩妹神器就到手蒿赢。

如此撩妹神器,不如現(xiàn)在就上手試一試渣触?程序員特有的浪漫送給你心儀的他/她一副十字繡畫(huà)吧

我是拉小登羡棵,源于Excel,不只是Excel

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嗅钻,一起剝皮案震驚了整個(gè)濱河市皂冰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌养篓,老刑警劉巖秃流,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異柳弄,居然都是意外死亡舶胀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)碧注,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嚣伐,“玉大人,你說(shuō)我怎么就攤上這事萍丐⌒耍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵逝变,是天一觀的道長(zhǎng)基茵。 經(jīng)常有香客問(wèn)我刻撒,道長(zhǎng),這世上最難降的妖魔是什么耿导? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任声怔,我火速辦了婚禮,結(jié)果婚禮上舱呻,老公的妹妹穿的比我還像新娘醋火。我一直安慰自己,他們只是感情好箱吕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布芥驳。 她就那樣靜靜地躺著,像睡著了一般茬高。 火紅的嫁衣襯著肌膚如雪兆旬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,394評(píng)論 1 310
  • 那天怎栽,我揣著相機(jī)與錄音丽猬,去河邊找鬼。 笑死熏瞄,一個(gè)胖子當(dāng)著我的面吹牛脚祟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播强饮,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼由桌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了邮丰?” 一聲冷哼從身側(cè)響起行您,我...
    開(kāi)封第一講書(shū)人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎剪廉,沒(méi)想到半個(gè)月后娃循,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妈经,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年淮野,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捧书。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吹泡。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖经瓷,靈堂內(nèi)的尸體忽然破棺而出爆哑,到底是詐尸還是另有隱情,我是刑警寧澤舆吮,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布揭朝,位于F島的核電站队贱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏潭袱。R本人自食惡果不足惜柱嫌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屯换。 院中可真熱鬧编丘,春花似錦、人聲如沸彤悔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晕窑。三九已至抑片,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杨赤,已是汗流浹背敞斋。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疾牲,地道東北人渺尘。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像说敏,于是被迫代替她去往敵國(guó)和親鸥跟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 前天和一個(gè)群里的同學(xué)聯(lián)系盔沫,問(wèn)一下課程安排医咨,當(dāng)我得知她已經(jīng)59歲的時(shí)候我真的只剩下欽佩了,59歲架诞,還在努力提升自...
    桃夭灼華娜娜閱讀 64評(píng)論 0 0
  • 成功離不開(kāi)專業(yè)能力拟淮,離不開(kāi)環(huán)境,離不開(kāi)交流谴忧『懿矗《異類》一書(shū)對(duì)這三者都有說(shuō)到。 專業(yè)能力沾谓,比如彈鋼琴委造。成為世界級(jí)大師,...
    黃南森技術(shù)分享閱讀 201評(píng)論 0 1
  • 目 錄 一個(gè)作家的愛(ài)情(五) 夏天已經(jīng)結(jié)束,蟬兒的聲音也聽(tīng)不到了均驶。 胡文鶴的手昏兆,觸碰上了白淺靜的臉頰。這是一雙很...
    三山傘閱讀 265評(píng)論 0 0
  • 歡迎收看俗到掉渣的《小Y講堂》節(jié)目妇穴,大家好爬虱,我是小Y,一個(gè)集性感毛發(fā)與才華于一身的程序猿隶债。小Y的設(shè)計(jì)模式系列中的「...
    YoungManSter閱讀 610評(píng)論 0 8