2016-08-26 2 views
3

私は実際の問題を理解しています。 1つのExcelワークブックに複数のワークシートがあり、すべて1つのデータフレームテーブルと1つのチャートが含まれています。私はすべての異なるデータフレームを実行し、各Excelワークシートに書き出し、各グラフをプロットし、グラフをpngファイルに保存し、openpyxlを使用して各ワークシートに画像をロードする方法でコードを整理しました。Matplotlib/Openpyxl - 複数の画像を別のワークシートに貼り付けることができます。

ここのキーは、どのようにしてファイルをブックに保存するかのようです。たとえば、最後のイメージを最後のワークシートにアップロードした後にxfile.save( 'bikes.xlsx')と入力すると、最後のイメージのみが表示され、他のイメージは他のワークシートには表示されません。最初のイメージがワークシートにロードされた後にタイプが保存される場合、Excelは最初のワークシートのイメージを表示します。各画像がワークシートにロードされた後に保存関数を置くと、最後の画像のみが最後のワークシートに表示されます。

#Plot chart 1 
df3.plot(x='Length', y=['types of cats'], figsize=(8,4)) 
plt.savefig('Typesofcats.png') 

#Write PNG file to existing worksheet 
from openpyxl import Workbook 
from openpyxl.drawing.image import Image 
xfile1 = openpyxl.load_workbook('Things.xlsx') 
sheet1 = xfile1.get_sheet_by_name('Types of Cats') 
img1 = Image('Typesofcats.png') 
sheet1.add_image(img1, 'I6') 
xfile.save('Things.xlsx') 

#Plot chart 2 
df5.plot(x='Length', y=['Types of dogs'], figsize=(8,4)) 
plt.savefig('Typesofdogs.png') 

#Write PNG file to existing worksheet 
from openpyxl import Workbook 
from openpyxl.drawing.image import Image 
xfile2 = openpyxl.load_workbook('Things.xlsx') 
sheet2 = xfile2.get_sheet_by_name('Types of dogs') 
img2 = Image('Typesofdogs.png') 
sheet2.add_image(img2, 'I6') 
xfile2.save('Things.xlsx') 

#Plot chart 3 
df6.plot(x='Length', y=['Types of pigs'], figsize=(7,3)) 
plt.savefig('Typesofpigs.png') 

#Write PNG file to existing worksheet 
from openpyxl import Workbook 
from openpyxl.drawing.image import Image 
xfile3 = openpyxl.load_workbook('Things.xlsx') 
sheet3 = xfile2.get_sheet_by_name('Types of pigs') 
img3 = Image('Typesofpigs.png') 
sheet3.add_image(img3, 'F6') 
xfile3.save('Things.xlsx') 
+1

ファイルの保存と再オープンのようです。ファイルを開くと画像が削除されます。 –

答えて

3

ああ大丈夫です!毎回ブックを開いたり閉じたりしているので、イメージは以前のワークシートから削除されています。単に接続を1回だけ開くだけでは、すべてのイメージを各ワークシートに貼り付けてから閉じてください。

#Write PNG file to existing worksheet 
from openpyxl import Workbook 
from openpyxl.drawing.image import Image 
xfile = openpyxl.load_workbook('Things.xlsx') 
sheet = xfile.get_sheet_by_name('Types of Cats') 
img = Image('Typesofcats.png') 
sheet.add_image(img, 'L6') 
sheet1 = xfile.get_sheet_by_name('Types of Dogs') 
img1 = Image('Typesofdogs.png') 
sheet1.add_image(img1, 'I6') 
sheet2 = xfile.get_sheet_by_name('Types of Pigs') 
img2 = Image('Typesofpigs.png') 
sheet2.add_image(img2, 'I6') 
xfile.save('Things.xlsx') 

ありがとうございました。

関連する問題