Can I insert matplotlib graphs into Excel programmatically?

后端 未结 3 1657
不思量自难忘°
不思量自难忘° 2020-12-03 14:22

I am saving matplotlib files as .tiff images. I\'d like to be able to then open an excel file and paste the image there.

openpyxl doesnot seem to support image embed

3条回答
  •  感情败类
    2020-12-03 15:24

    Here is what I found from two different links on the web, that worked perfectly for me. Matplotlib allows saving png files which is what I make use of here:

    from PIL import Image
    
    file_in = "image.png"
    img = Image.open(file_in)
    file_out = 'test1.bmp'
    print len(img.split()) # test
    if len(img.split()) == 4:
        # prevent IOError: cannot write mode RGBA as BMP
        r, g, b, a = img.split()
        img = Image.merge("RGB", (r, g, b))
        img.save(file_out)
    else:
        img.save(file_out)
    
    from xlwt import Workbook
    w = Workbook()
    ws = w.add_sheet('Image')
    ws.insert_bitmap(file_out, 0, 0)
    w.save('images.xls')
    

    The image part of the code is from Ene Urans response here http://www.daniweb.com/software-development/python/threads/253957/converting-an-image-file-png-to-a-bitmap-file.

    The xlwt is simply form the documentation of xlwt I found at http://www.simplistix.co.uk/presentations/python-excel.pdf.

提交回复
热议问题