학습 자료

openpyxl로 엑셀 데이터를 읽어와 워드 문서에 표와 텍스트 추가하기

엑셀 파일에서 데이터를 읽어와 워드 문서로 작성하는 작업은 보고서나 문서 자동화 과정에서 자주 필요합니다.

이번 수업에서는 openpyxl 라이브러리를 활용해 엑셀 데이터를 읽어온 후, python-docx로 워드 문서에 텍스트와 표를 추가하는 방법을 알아보겠습니다.


엑셀 파일 구조

먼저, 우리가 다룰 엑셀 파일의 구조를 살펴보겠습니다.

엑셀 파일은 매출 데이터를 포함하고 있으며, 다음과 같은 시트가 있습니다.

날짜제품명판매량단가총매출
2024-01-01상품 A10050050,000
2024-01-02상품 B150750112,500
2024-01-03상품 C200800160,000
2024-01-04상품 A13050065,000
2024-01-05상품 B170750127,500

이 엑셀 파일에는 일자별로 각 제품의 판매량과 단가를 곱한 총매출이 계산되어 있습니다.

이러한 데이터를 워드 문서로 변환하여 보고서에 포함시키는 것이 목표입니다.


1단계: 엑셀 파일에서 데이터 읽어오기

먼저, 엑셀 파일에서 데이터를 읽어오기 위해 openpyxl 라이브러리를 사용합니다.

이 라이브러리는 엑셀 파일을 읽고 쓸 수 있는 기능을 제공하며, 간단한 코드로 데이터를 가져올 수 있습니다.

엑셀 파일에서 데이터 읽어오기
from openpyxl import load_workbook # 엑셀 파일 로드 workbook = load_workbook('sales_data.xlsx') sheet = workbook.active # 데이터 읽어오기 data = [] for row in sheet.iter_rows(min_row=2, values_only=True): data.append(row)
  • load_workbook('sales_data.xlsx')은 'sales_data.xlsx' 파일을 로드합니다.

  • sheet = workbook.active는 활성화된 시트를 선택합니다.

  • iter_rows(min_row=2, values_only=True)는 엑셀 시트의 데이터를 행 단위로 읽어옵니다. 여기서 min_row=2는 첫 번째 행(헤더)을 건너뛰고 두 번째 행부터 읽어오도록 설정합니다.

이 코드로 엑셀 파일에서 데이터를 리스트 형태로 가져올 수 있습니다.


2단계: 워드 문서 생성하기

이제 가져온 데이터를 워드 문서에 넣어보겠습니다. 먼저 python-docx를 이용해 새로운 워드 문서를 생성합니다.

새 워드 문서 생성하기
from docx import Document # 새 워드 문서 생성 doc = Document() doc.add_heading('매출 보고서', 0) doc.add_paragraph('다음은 최근 매출 데이터입니다.')
  • Document()를 호출하여 새 워드 문서를 생성합니다.

  • add_heading('매출 보고서', 0)은 문서의 제목을 추가합니다.

  • add_paragraph('다음은 최근 매출 데이터입니다.')는 본문 텍스트를 추가합니다.


3단계: 엑셀 데이터를 워드 문서에 표로 추가하기

엑셀에서 읽어온 데이터를 워드 문서에 표로 삽입합니다.

엑셀 데이터를 워드 문서에 표로 추가하기
# 표 생성 table = doc.add_table(rows=1, cols=len(sheet[1]), style='Table Grid') # 표의 첫 번째 행에 헤더 추가 hdr_cells = table.rows[0].cells for i, heading in enumerate(sheet[1]): hdr_cells[i].text = str(heading.value) # 표에 데이터 추가 for row in data: row_cells = table.add_row().cells for i, value in enumerate(row): row_cells[i].text = str(value)
  • doc.add_table(rows=1, cols=len(sheet[1]), style='Table Grid')는 엑셀 데이터의 열 개수만큼 컬럼이 있는 표를 생성합니다.

  • 첫 번째 행에는 엑셀의 헤더(날짜, 제품명, 판매량 등)를 추가합니다.

  • 그 다음으로, table.add_row().cells를 통해 데이터를 각 셀에 입력합니다.


4단계: 문서 저장하기

모든 데이터를 추가한 후, 워드 문서를 저장합니다.

워드 문서 저장하기
# 문서 저장 doc.save('sales_report.docx')

이 코드는 작성된 문서를 'sales_report.docx'라는 이름으로 저장합니다.

Quiz
0 / 1

openpyxl과 python-docx를 사용하여 엑셀 데이터를 워드 문서에 추가할 때, 먼저 해야 할 작업은 무엇인가요?

워드 문서에 표를 추가한다.

엑셀 데이터를 읽어온다.

문서를 저장한다.

워드 문서의 제목을 추가한다.

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과

입력 데이터/결과물

문서가 비어 있습니다.

코드를 실행해보세요.