Python: 동일한 Excel 파일에 이미지 및 데이터 프레임 쓰기
Excel 대시보드를 만들고 있는데 절반은 데이터 프레임이고 나머지 절반은 .png 파일로 구성된 Excel 워크북을 생성하고 싶습니다.한 번에 같은 파일에 쓰는 데 어려움을 겪고 있습니다.이것이 제가 현재 가지고 있는 것입니다.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')
이 문제를 해결할 수 있는 팁이 있는 사람?
다음은 기본 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()
출력:
자세한 예는 XlsxWriter 문서에서 Python Pandas 및 XlsxWriter 관련 작업을 참조하십시오.
여기 제가 생각해 낸 해결책이 있습니다.아직도 워크북을 다시 가져오지 않고는 이 작업을 수행할 방법을 찾을 수 없습니다.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')
언급URL : https://stackoverflow.com/questions/51601031/python-writing-images-and-dataframes-to-the-same-excel-file
'programing' 카테고리의 다른 글
C#에서 어레이를 비교하는 가장 쉬운 방법 (0) | 2023.05.19 |
---|---|
SQLite 데이터베이스에 한 번에 여러 행을 삽입할 수 있습니까? (0) | 2023.05.19 |
내포된 f-스트링 (0) | 2023.05.19 |
Git Bash가 내 경로를 보지 못합니다. (0) | 2023.05.19 |
마지막 마이그레이션을 되돌리는 방법은 무엇입니까? (0) | 2023.05.19 |