본문 바로가기
Programming/업무자동화

[업무자동화] 워드 표 계산하기

by 느리게 걷는 즐거움 2024. 4. 7.
728x90
반응형

워드문서의 표 계산하기

파이썬을 이용해서 Word에 작성된 표의 정보를 엑셀처럼 계산하는 코드를 작성합니다. 간혹 Word에 작성된 표를 계산해야하는 경우가 있습니다. 엑셀에 옮겨서 계산 후 결과를 저장하면 되지만 계산해야할 정보가 많은 경우 자동화가 필요합니다.

동작구조

프로그램을 실행하면 프로그램이 저장된 위치의 input.docx파일을 찾아서 해당 파일의 표를 계산합니다. 결과는 result.docx에 저장됩니다.

input.docx의 내부표는 아래와 같이 구성됩니다. 테이블에 대한 정보가 첫번째 행에 저장됩니다. [제품명], [가격], [수량], [총 판매액]의 4가지 정보가 각 열에 작성되어 있습니다.

두 번째 열에는 실제 정보가 저장되어 있습니다. 계산결과는 여기서 시작합니다. 입력으로 사용되는 input.docx에는 총 판매액 항목이 아래처럼 비어있는 상태입니다.

프로그램을 실행하면 input.docx 파일을 열고 테이블의 계산결과를 업데이트 후 result.docx 파일로 저장합니다.

프로그램을 실행 후 생성된 result.docx파일을 열면 위의 그림과 같이 (1) x (2)의 계산결과가 (3)에 저장됩니다.

코드는 아래와 같습니다. 파이썬 파일을 생성한 후 파이썬 파일을 실행하면 결합된 엑셀파일을 얻을 수 있습니다. 윈도우에서 바로 실행가능한 실행파일이 필요하신 분은 댓글로 알려주세요.

라이브러리 설치

프로그램을 실행하기 위해서 파이썬 라이브러리 설치가 필요합니다. 아래 명령으로 필요한 라이브러리를 설치해주세요.

pip install python-docx
코드정보
from docx import Document

doc = Document('input.docx')

table = doc.tables[0]
for row in table.rows[1:]:
    result = (float(row.cells[1].text) * float(row.cells[2].text))
    row.cells[3].text = str(result)

doc.save("result.docx")

코드는 먼저 Document 클래스를 사용하여 input.docx라는 문서를 엽니다. 그리고 문서 내의 첫 번째 표(인덱스 0)를 가져옵니다.

표의 각 행을 반복하면서 두 번째 열과 세 번째 열의 값을 곱한 결과를 계산합니다. 결과를 계산하여 네 번째 열에 삽입합니다. 마지막으로 변경된 문서를 "result.docx"로 저장합니다.

업무 자동화를 위해 필요한 기능이 있다면 댓글로 알려주세요. 감사합니다.

728x90
반응형

'Programming > 업무자동화' 카테고리의 다른 글

[업무자동화] 엑셀파일 하나로 결합하기  (0) 2024.04.04