2013-03-02 1 views
8

私はmatplotlibファイルを.tiffイメージとして保存しています。私は、Excelファイルを開いてそこにイメージを貼り付けることができるようにしたいと思います。プログラムでmatplotlibグラフをExcelに挿入できますか?

openpyxlは画像の埋め込みをサポートしていないようです。 xlwtはbmpだけです。

代わりに、もし私がプログラムでtiffをbmpに変換できれば、それは助けになるかもしれません。

いずれかのアイデアを歓迎します。グラフの私の体積(約10ファイルごとに)小さいしかしながらTIFFからBMPに変換

Embed multiple jpeg images into EXCEL programmatically?

と同様

が許容されます。

答えて

7

ここで私は完全に私のために働いた、ウェブ上の2つの異なるリンクから見つけたものです。 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') 

コードの画像部分がここエネURANS応答http://www.daniweb.com/software-development/python/threads/253957/converting-an-image-file-png-to-a-bitmap-fileからです。

xlwtは、私がhttp://www.simplistix.co.uk/presentations/python-excel.pdfで見つけたxlwtのドキュメントを単純に構成しています。

1

Openpyxlは実際に画像の埋め込みをサポートしていますので、.pngや既存の.xlsxファイルを使用している方にとっては効果的かもしれません。次のコードは、image.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') 
1

これは私のために働いた:

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') 
関連する問題