失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 利用Python的第三方库openpyxl实现在Excel中画图

利用Python的第三方库openpyxl实现在Excel中画图

时间:2018-08-22 21:28:47

相关推荐

利用Python的第三方库openpyxl实现在Excel中画图

利用Python的第三方库openpyxl实现在Excel中画图

今天在写测试用例的时候利用背景色标记不同级别的用例,联想到日本一个老人在Excel上作画的想法,突发奇想利用Python操作Excel改变背景色来作图,首先就要用到可以操作Excel的第三方库openpyxl,之前想用xlwt的但是这个包只支持Excel的列上限是256列,显然不满足要求,总体思路是:利用PIL库的Image对象获取想要画的图片的所有像素点的RGB值,在利用openpyxl设置Excel的单元格的背景色为该颜色,保存后还要打开Excel自己设置下列的宽度因为我没找到那个方法可以设置全局宽度,又不想一个个设置,好在Excel可以手动设置,我设置的宽度值为1.3 废话不多说了 上代码吧!(不足之处还请指点)

from openpyxl import Workbook

from openpyxl.styles import PatternFill

from PIL import Image

im =Image.open(‘haha.png’)

width,heigth=im.size

li=[]

col=[]

for i in range(width): #将获取到的元素像素点颜色存入列表

for j in range(heigth):

t=im.getpixel((i,j))

li.append(t)

for m in li: #将元素颜色转化成颜色字符串

#s=str(hex(m[0]+m[1]*256+m[2]*65536))

s=str(hex(m[2]+m[1]*256+m[0]*65536))

word=str(s[2:len(s)])

if len(word)==6:

col.append(word)

elif len(word)==5:

col.append(‘0’+word)

elif len(word)==4:

col.append(‘00’+word)

elif len(word)==3:

col.append(‘000’+word)

elif len(word)==2:

col.append(‘0000’+word)

elif len(word)==1:

col.append(‘00000’+word)

#2-新建一个工作簿

wb = Workbook()

ws = wb.active

for x in range(1,width+1): #逐个设置单元格的背景色

for y in range(1,heigth+1):

fill = PatternFill(“solid”, fgColor=col[(x-1)*heigth+y-1])

ws.cell(y,x).fill=fill

#保存文件

wb.save(‘picturemei.xlsx’)

如果觉得《利用Python的第三方库openpyxl实现在Excel中画图》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。