Python 是否可以通过编程方式将matplotlib图形插入Excel?

Python 是否可以通过编程方式将matplotlib图形插入Excel?,python,excel,matplotlib,Python,Excel,Matplotlib,我正在将matplotlib文件保存为.tiff图像。我想能够然后打开一个excel文件,并粘贴在那里的图像 openpyxl似乎不支持图像嵌入。xlwt有,但只有bmp 或者,如果我可以通过编程方式将tiff转换为bmp,也可能会有所帮助 欢迎就这两个问题提出意见 近似 但是,从tiff转换为bmp是可以接受的,因为我的图形量很小(每个文件大约10个)。以下是我从web上的两个不同链接中发现的内容,对我来说非常有用。Matplotlib允许保存png文件,这正是我在此处使用的: from P

我正在将matplotlib文件保存为.tiff图像。我想能够然后打开一个excel文件,并粘贴在那里的图像

openpyxl似乎不支持图像嵌入。xlwt有,但只有bmp

或者,如果我可以通过编程方式将tiff转换为bmp,也可能会有所帮助

欢迎就这两个问题提出意见

近似


但是,从tiff转换为bmp是可以接受的,因为我的图形量很小(每个文件大约10个)。

以下是我从web上的两个不同链接中发现的内容,对我来说非常有用。Matplotlib允许保存png文件,这正是我在此处使用的:

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')
代码的图像部分来自Ene Urans的响应


xlwt只是我在中找到的xlwt文档的一种形式。

Openpyxl实际上支持图像嵌入,对于那些使用.png或现有.xlsx文件的人来说可能会更好!下面的代码将图像附加到input.xlsx的单元格A1,并将文件另存为output.xlsx

import matplotlib.pyplot as plt
import openpyxl

# Your plot generation code here...
plt.savefig("myplot.png", dpi = 150)

wb = openpyxl.load_workbook('input.xlsx')
ws = wb.active

img = openpyxl.drawing.Image('myplot.png')
img.anchor(ws.cell('A1'))

ws.add_image(img)
wb.save('output.xlsx')
编辑2020年6月:我被告知openpyxl自撰写本文以来已经发生了变化。第7行应为:

img=openpyxl.drawing.image.image('myplot.png')


现在那里有一个额外的.image。

这对我来说是可行的:

import openpyxl

wb = openpyxl.load_workbook('input.xlsx')
ws = wb.active

img = openpyxl.drawing.image.Image('myplot.png')
ws.add_image(ws.cell('A1'))

ws.save('output.xlsx')