Python: كتابة الصور وأطر البيانات إلى نفس ملف excel

0

أقوم بإنشاء لوحة تحكم excel وأريد إنشاء مصنف excel يحتوي على بعض إطارات البيانات على نصف الأوراق ، وملفات .png للنصف الآخر. أواجه صعوبة في كتابتها إلى نفس الملف دفعة واحدة. إليك ما لدي حاليًا. يبدو أنه عندما أقوم بتشغيل حلقة for ، فلن يسمح لي بإضافة أوراق عمل إضافية. هل من نصائح حول كيفية إضافة ملفات الصور الخاصة بي إلى هذا المصنف؟ لا يمكنني العثور على أي شيء حول سبب عدم تمكني من إضافة المزيد من أوراق العمل شكرًا!

dfs = dict()
dfs['AvgVisitsData'] = avgvisits
dfs['F2FCountsData'] = f2fcounts

writer = pd.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
for name, df in dfs.items():
    df.to_excel(writer, sheet_name=name, index = False)

ثم أود أن أضيف بضع أوراق مع بعض الصور إلى نفس المصنف التفوق. شيء من هذا القبيل ، ولكن حيث لا أقوم بإنشاء مصنف جديد بالكامل.

workbook = xlsxwriter.Workbook('MyData.xlsx')
worksheet = workbook.add_worksheet('image1')
worksheet.insert_image('A1', 'MemberCollateral.png')

أي شخص لديه أي نصائح للعمل حول هذا؟

2 الاجابة

0

إليك الحل الذي توصلت إليه. ما زلت لا أجد طريقة للقيام بذلك دون إعادة استيراد المصنف باستخدام load_workbook ولكن هذا أنجز المهمة.

# assign dataframes to dictionary and export them to excel
avgvisits = pd.DataFrame(pd.read_sql(avgvisits(), cnxn))
f2fcounts = pd.DataFrame(pd.read_sql(f2fcounts(), cnxn))
activityencounters = pd.DataFrame(pd.read_sql(ActivityEncounters(), cnxn))
activityencountersp = activityencounters.pivot_table(values='ActivityCount', index = ['Activity'], columns= ['QuarterYear'], aggfunc=np.max)

dfs = dict()
dfs['AvgVisitsData'] = avgvisits
dfs['F2FIndirect'] = f2fcounts
dfs['ActivityEncounters'] = activityencountersp

writer = pd.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
for name, df in dfs.items():
    if name != 'ActivityEncounters':
        df.to_excel(writer, sheet_name=name, index=False)
    else:
        df.to_excel(writer, sheet_name=name, index=True)

writer.save()
writer.close()

# re-import the excel book and add the graph image files
wb = load_workbook('MyData.xlsx')
png_loc = 'MemberCollateral.png'
wb.create_sheet('MemberCollateralGraph')
ws = wb['MemberCollateralGraph']
my_png = openpyxl.drawing.image.Image(png_loc)
ws.add_image(my_png, 'A1')

png_loc = 'DirectIndirect.png'
ws = wb['F2FIndirect']
my_png = openpyxl.drawing.image.Image(png_loc)
ws.add_image(my_png, 'A10')

png_loc = 'QuarterlyActivitySummary.png'
ws = wb['ActivityEncounters']
my_png = openpyxl.drawing.image.Image(png_loc)
ws.add_image(my_png, 'A10')
wb.save('MyData.xlsx')
:مؤلف
0

فيما يلي مثال على كيفية الحصول على مقبض لمصنف XlsxWriter الأساسي وكائنات ورقة العمل وإدراج صورة:

import pandas as pd


# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_image.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Get the xlsxwriter workbook and worksheet objects.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Insert an image.
worksheet.insert_image('D3', 'logo.png')

# Close the Pandas Excel writer and output the Excel file.
writer.save()

انتاج:

Imagen 689441

انظر أيضًا العمل مع Python Pandas و XlsxWriter في مستندات XlsxWriter لمزيد من الأمثلة

:مؤلف
فوق
قائمة طعام