Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert an image base 64 on excel using xlwt

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.

like image 892
FJBatresV Avatar asked Feb 15 '26 09:02

FJBatresV


1 Answers

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!!

like image 104
archetipo Avatar answered Feb 17 '26 23:02

archetipo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!