Python

[Python] 한 엑셀 내 여러개 시트 파일 생성

앳홍 2024. 3. 18. 18:30
반응형
필요 모듈 import 
import pandas as pd
import os

 

writer =  pd.ExcelWriter(os.path.join(원하는 경로,'저장 파일명.xlsx'),engine='xlsxwriter')

다른 블로그를 봤을땐 engine 자리에 openpyxl 를 사용하기도 하던데 비교 안해봐서 모르겠으나

위와 같이 실행해도 문제 없이 결과 파일 생성됨.  

 

파일 생성
data_f.to_excel(writer, sheet_name = 원하는 시트 이름, index=False)

index 를 그대로 추가하고 싶으면 index = True 로 변경하면 된다

 

 

파일 저장 완료
writer.save()
writer.close()

파일을 저장하고 완료하기 위해서는 save로 저장후, close()를 사용하여 파일을 닫아주어야 안전하게 애플리케이션을 종료할 수 있으니,

오류없이 저장하기 위해서 사용하길 바란다.

 

 

 

 

여러 데이터 프레임 한번에 여러시트에 저장하기

writer =  pd.ExcelWriter(os.path.join(원하는 경로,'저장 파일명.xlsx'),engine='xlsxwriter')

for a in range(0,100): # 원하는 데이터 기준으로 for문
    print(df.iloc[[a]]) # 데이터
    print(df['sheet_name'][a]) # 시트명
    data = pd.merge(df.iloc[[a]],dt, on=['A', 'B', 'C', 'D'], how='left')
    	[['A', 'B', 'C', 'D','dt1','dt2', 'dt3']]
    data_f = pd.DataFrame(data)
    data_f.to_excel(writer, sheet_name = df['sheet_name'][a], index=False)

writer.save()
writer.close()

 

 

 

나는 간단한 방법을 사용하고 싶어서 위와 같은 엑셀 저장 방법을 사용했다.

 

다른 좋은 방법이 있거나 틀린 부분이 있다면 댓글로 알려주세요!

함께 배워나가겠습니다.