Insert an image base64 on excel using xlwt

2019-04-12 12:35发布

问题:

Hello i am workin in odoo and this save all the images like base64 on the database. I have the code, but I am making an excel report where I need to put the image, the excel driver is xlwt, but i can't find a nice method.

image = product_id.image_smal (this is a base64)

On the web i found this:

xlwt.insert_bitmap('PATH', row, col)

and this:

fh = open("imageToSave.png", "wb")
fh.write(imgData.decode('base64'))
fh.close()

I can save the image but is not inserted and give me this error:

bitmap doesn't appear to to be a valid bitmap image.

Thank you for all the help.

回答1:

to convert png to bmp you need to:

from PIL import Image

img = Image.open("imageToSave.png")
r, g, b, a = img.split()
img = Image.merge("RGB", (r, g, b))
img.save('imagetoadd.bmp')
xlwt.insert_bitmap('imagetoadd.bmp', row, col)

Hope this help!!