파이썬으로 엑셀 파일 시트를 분할하여 저장하기
데이터프레임에서 발주사별로 분할하여 저장된 하나의 엑셀파일을
각 발주사별로 분할하여 엑셀파일로 저장한 다음
각각의 발주사로 주문서를 넣으려고 한다.
파이썬으로 간단한 코딩조차 할 능력이 안되어, 챗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로 지정하면, 인덱스 정보는 저장되지 않습니다.
위 코드를 실행하면, 현재 디렉토리에 각 시트를 포함한 새로운 엑셀 파일이 생성됩니다.
'챗GPT 활용 > 챗GPT를 활용한 파이썬 코딩' 카테고리의 다른 글
[파이썬+챗GPT] 데이터프레임 합치기를 위한 코드 간결화 (2) | 2023.03.18 |
---|---|
[파이썬 활용] 전화번호 전처리할 때 함수를 사용해서 간단하게? (0) | 2023.03.13 |