본문 바로가기

챗GPT 활용/챗GPT를 활용한 파이썬 코딩

[파이썬+챗GPT] 파이썬으로 엑셀 파일 시트를 분할하여 저장하기

파이썬으로 엑셀 파일 시트를 분할하여 저장하기

데이터프레임에서 발주사별로 분할하여 저장된 하나의 엑셀파일을

각 발주사별로 분할하여 엑셀파일로 저장한 다음

각각의 발주사로 주문서를 넣으려고 한다.

 

파이썬으로 간단한 코딩조차 할 능력이 안되어, 챗GPT를 통해 질문한 결과를 아래 쭉어 달어 두었네요.

테스트할 시간이 없어, 실행도 못해보고, 일단 나중에 참고하려고 포스팅.. 


[ Python을 사용하여 여러 시트가 있는 엑셀 파일을 분할하여 저장하기 ]

Python에서 엑셀 파일을 다루기 위해 pandas 라이브러리를 사용할 수 있습니다.
여러 개의 시트가 있는 엑셀 파일을 읽어들인 후, 시트를 분할하여 각각의 새로운 엑셀 파일로 저장하는 방법은 다음과 같습니다.

먼저, 필요한 라이브러리를 import 합니다.

라이브러리 import
import pandas as pd
from datetime import datetime

 

다음으로, 엑셀 파일을 pandas로 읽어들입니다.

엑셀 파일 읽기
excel_file = pd.read_excel('파일이름.xlsx', sheet_name=None)

'sheet_name=None'으로 지정하면 모든 시트를 읽어들입니다.

 

이제 엑셀 파일에서 시트를 하나씩 꺼내서 새로운 파일로 저장합니다. 

이때, 파일명은 오늘 날짜와 시트명을 합쳐서 생성합니다.

오늘 날짜를 파일명에 넣고 각 시트를 새 파일로 저장하기
today = datetime.today().strftime('%Y%m%d')

for sheet_name, sheet_data in excel_file.items():
    file_name = today + '_' + sheet_name + '.xlsx'
    sheet_data.to_excel(file_name, index=False)

위 코드에서 today 변수는 오늘 날짜를 나타내며, strftime('%Y%m%d')를 사용하여 연도, 월, 일 정보를 문자열 형태로 가져옵니다.
각 시트마다 파일명을 today + '_' + sheet_name + '.xlsx' 형태로 생성합니다.
마지막으로, to_excel() 메소드를 사용하여 각 시트를 새로운 엑셀 파일로 저장합니다.


전체 코드는 다음과 같습니다.

 
import pandas as pd
from datetime import datetime

excel_file = pd.read_excel('파일이름.xlsx', sheet_name=None)

today = datetime.today().strftime('%Y%m%d')

for sheet_name, sheet_data in excel_file.items():
    file_name = today + '_' + sheet_name + '.xlsx'
    sheet_data.to_excel(file_name, index=False)

위 코드를 실행하면, 현재 디렉토리에 각 시트를 포함한 새로운 엑셀 파일이 생성됩니다.

 


주석을 포함한 전체 코드입니다.

 
import pandas as pd
from datetime import datetime

# 엑셀 파일을 읽어들입니다.
excel_file = pd.read_excel('파일이름.xlsx', sheet_name=None)

# 오늘 날짜를 문자열로 저장합니다.
today = datetime.today().strftime('%Y%m%d')

# 각 시트를 새로운 파일로 저장합니다.
for sheet_name, sheet_data in excel_file.items():
    
    # 파일명을 오늘 날짜와 시트명으로 생성합니다.
    file_name = today + '_' + sheet_name + '.xlsx'
    
    # 시트 데이터를 새로운 엑셀 파일로 저장합니다.
    sheet_data.to_excel(file_name, index=False)

위 코드에서 pd.read_excel() 함수를 사용하여 엑셀 파일을 읽어들입니다.
sheet_name=None으로 지정하면 모든 시트를 읽어들입니다.

datetime.today().strftime('%Y%m%d')를 사용하여 오늘 날짜를 문자열로 저장합니다.
strftime() 함수는 datetime 객체를 문자열로 변환할 때 사용되며, %Y%m%d는 년, 월, 일 정보를 나타내는 문자열 포맷입니다.

for 문을 사용하여 각 시트를 새로운 파일로 저장합니다.
excel_file.items()를 사용하여 엑셀 파일의 모든 시트를 반복하며, sheet_name과 sheet_data 변수에 시트명과 시트 데이터를 저장합니다.

file_name 변수를 생성하여 파일명을 오늘 날짜와 시트명으로 지정합니다.
to_excel() 메소드를 사용하여 시트 데이터를 새로운 엑셀 파일로 저장합니다.
index=False로 지정하면, 인덱스 정보는 저장되지 않습니다.

위 코드를 실행하면, 현재 디렉토리에 각 시트를 포함한 새로운 엑셀 파일이 생성됩니다.

 

 

반응형