起因
之前一直用xlsxwriter生成excel文件时,插入图片总会出现忽大忽小,插入参数只有位置和缩放参数,没有长宽的属性。结合网上解决方法,使用如下方法即刻解决
解决方案
from io import BytesIOtry:from urllib.request import urlopenexcept ImportError:from urllib2 import urlopenfrom PIL import Imagefrom xlsxwriter.workbook import Workbookfilename = '/script/test.xlsx'office = Workbook(filename)cell_height = 140.0worksheet = office.add_worksheet()image_data = BytesIO(urlopen(image_url).read())im = Image.open(image_data)print im.sizeoriginal_width, original_height = im.sizewidth = cell_height * original_width / original_heightim.thumbnail((width, cell_height), Image.ANTIALIAS)print im.sizeim_bytes = BytesIO()im.save(im_bytes, format='JPEG')worksheet.insert_image(1, 1, p.avatar, {'image_data': im_bytes})office.close()