가이드라인

판매 실적 데이터를 워드 문서로 자동화하기

이전 수업에서 불러온 엑셀 데이터를 바탕으로 워드 문서를 작성해 보겠습니다.

실습 코드를 실행하면 python-docx 라이브러리는 사용해 판매 실적 데이터를 문서 내 표로 변환하고, 워드 문서로 저장합니다.


python-docx로 워드 문서 만들기

실습 코드는 다음과 같이 6단계로 동작합니다.


1. 필요한 라이브러리 불러오기

openpyxl 및 python-docx 라이브러리 불러오기
import openpyxl # 엑셀 파일을 다루는 라이브러리 from docx import Document # python-docx 라이브러리
  • openpyxl: 엑셀 파일을 읽고 수정할 수 있도록 돕는 라이브러리입니다.

  • Document: 워드 문서를 생성하고, 내용을 추가하거나 수정할 수 있는 클래스입니다.


2. 엑셀 파일 불러오기

load_workbook 함수로 엑셀 파일 불러오기
wb = openpyxl.load_workbook('input_file.xlsx') # 엑셀 파일을 불러옵니다. sheet = wb.active # 현재 활성화된 시트를 가져옵니다.
  • openpyxl.load_workbook('input_file.xlsx'): 엑셀 파일을 열어 그 데이터를 사용할 수 있도록 불러옵니다.

  • wb.active: 불러온 엑셀 파일에서 현재 활성화된 시트(첫 번째 시트)를 가져옵니다.


3. 워드 문서 생성

Document 클래스로 워드 문서 생성
doc = Document() # 새 워드 문서를 생성합니다.
  • Document(): 새로운 워드 문서를 만듭니다. 여기에 데이터를 추가해 나갈 예정입니다.

4. 보고서 제목 추가

add_heading 함수로 제목 추가
doc.add_heading('2024년 1분기 판매 실적 보고서', 0)
  • doc.add_heading: 워드 문서에 제목을 추가하는 코드입니다. '2024년 1분기 판매 실적 보고서'라는 제목을 추가하고, 0은 가장 큰 제목 크기입니다.

5. 표 생성 및 열 제목 설정

표 생성 및 열 제목 설정
table = doc.add_table(rows=1, cols=5) # 1행 5열로 구성된 표를 만듭니다. table.style = 'Table Grid' # 표에 테두리 스타일을 추가합니다. # 첫 번째 행(열 제목)을 설정합니다. hdr_cells = table.rows[0].cells hdr_cells[0].text = '월' hdr_cells[1].text = '제품' hdr_cells[2].text = '판매량' hdr_cells[3].text = '객단가' hdr_cells[4].text = '매출'
  • doc.add_table(rows=1, cols=5): 1행 5열로 구성된 표를 워드 문서에 추가합니다. 첫 번째 행은 열 제목을 위한 행입니다.

  • table.style = 'Table Grid': 표에 'Table Grid'라는 테두리 스타일을 설정하여 더 보기 좋게 만듭니다.

  • hdr_cells: 첫 번째 행의 각 셀을 지정하고, '월', '제품', '판매량', '객단가', '매출'이라는 제목을 추가합니다.


6. 엑셀 데이터 추가 및 워드 문서 저장

엑셀 데이터 추가 및 워드 문서 저장
# 2번째 줄부터 데이터를 읽습니다. for row in sheet.iter_rows(min_row=2, values_only=True): month, product, sales, price, revenue = row # 각 열의 데이터를 변수로 저장합니다. # 새로운 행을 표에 추가합니다. row_cells = table.add_row().cells row_cells[0].text = str(month) # '월' 데이터를 텍스트로 변환하여 추가 row_cells[1].text = product # '제품' 데이터를 추가 row_cells[2].text = str(sales) # '판매량' 데이터를 텍스트로 변환하여 추가 row_cells[3].text = str(price) # '객단가' 데이터를 텍스트로 변환하여 추가 row_cells[4].text = str(revenue) # '매출' 데이터를 텍스트로 변환하여 추가 # 워드 문서를 'output_file.docx'라는 이름으로 저장합니다. doc.save('output_file.docx')
  • sheet.iter_rows(min_row=2, values_only=True): 엑셀 파일의 두 번째 줄부터 데이터를 읽어옵니다. values_only=True로 설정하면, 셀의 값만 가져옵니다.

  • 각 변수(month, product, sales, price, revenue): 각각의 열 데이터를 변수로 저장합니다.

  • table.add_row(): 새로운 행을 표에 추가하고, 엑셀에서 읽어온 데이터를 그 행에 넣습니다.

  • doc.save('output_file.docx'): 최종적으로 워드 문서를 'output_file.docx'라는 이름으로 저장합니다.


워드 문서로 출력되는 결과

이 코드가 실행되면, 워드 문서에 다음과 같은 표가 생성됩니다.

제품판매량객단가매출
1월카메라50500,00025,000,000
1월컴퓨터301,200,00036,000,000
1월스마트폰100900,00090,000,000
2월카메라45480,00021,600,000
2월컴퓨터351,150,00040,250,000
2월스마트폰90850,00076,500,000
3월카메라40470,00018,800,000
3월컴퓨터401,100,00044,000,000
3월스마트폰95800,00076,000,000

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과

입력 데이터/결과물

문서가 비어 있습니다.

코드를 실행해보세요.