[업무자동화] 파이썬으로 회의록.doc 만들기

반응형
반응형

파이썬 회의록을 MS워드 파일로 만드는 방법입니다. MS 워드 파일로 저장하려면 python-docx 라이브러리를 사용합니다.

python-docx 라이브러리 설치

먼저 python-docx 라이브러리를 설치합니다.

pip install python-docx

딕셔너리를 Word 문서로 저장하기

원리를 설명하기 위해 딕셔너리와 리스트를 어떻게 word문서로 저장하는지 설명하겠습니다.

간단한 원리입니다. docx의 Document를 import해 원하는 문장을 add_paragraph() 괄호 안에 써서 합니다. 단, 괄호 안에는 문자열로 넣어주어야 합니다.

from docx import Document

# 딕셔너리 예시
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# Word 문서 생성
doc = Document()

# 딕셔너리 데이터를 문서에 추가
for key, value in data.items():
    doc.add_paragraph(f'{key}: {value}')

# 문서 저장
doc.save('data.docx')

doc.save로 저장해주면 MS 워드에서 아래와 같이 저장된 것을 볼 수 있습니다.

리스트를 word 문서로 저장하기

리스트도 같은 원리로 가능합니다.

from docx import Document

# 리스트 예시
items = ["Apple", "Banana", "Cherry", "Date"]

# Word 문서 생성
doc = Document()

# 리스트의 각 항목을 단락으로 추가
for item in items:
    doc.add_paragraph(item)

# 문서 저장
doc.save('list.docx')

리스트는 나열된 형식으로 나타나서 넘버링이나 글머리 기호도 넣어줄 수 있습니다.

from docx import Document

# 리스트 예시
items = ["Apple", "Banana", "Cherry", "Date"]

# Word 문서 생성
doc = Document()

# 번호가 매겨진 목록으로 추가
for item in items:
    doc.add_paragraph(item, style='List Number')

# 또는 글머리 기호 목록으로 추가
# for item in items:
#     doc.add_paragraph(item, style='List Bullet')

# 문서 저장
doc.save('list.docx')

style 파라미터에 List Number을 입력하면 넘버링을 해주고 List Bullet을 하면 글머리 기호를 넣어줍니다.

 

 

 

 

 

 

 

 

회의록 작성하기

회의록도 크게 다른 게 없습니다. 양식을 만들어서 자동화할 수 있다는 것이 중요합니다.

딕셔너리와 리스트를 활용해서 회의록을 형식화하고 갖다 넣으라고 하면 됩니다. 

add_heading() 통해서 제목을 만들고 add_paragraph()로 내용을 채웁니다.

 

 from docx import Document

# 회의 데이터
meeting_info = {
    "title": "프로젝트 착수 회의",
    "date": "2024-08-30",
    "time": "오전 10:00",
    "location": "회의실 A",
    "attendees": ["앨리스 스미스", "밥 존슨", "찰리 브라운"],
    "agenda": [
        "소개 및 목표 설정",
        "프로젝트 일정 검토",
        "역할 및 책임 할당",
        "질의응답 세션"
    ],
    "discussion": {
        "소개 및 목표 설정": "프로젝트의 주요 목표와 기대되는 결과를 논의했습니다.",
        "프로젝트 일정 검토": "프로젝트 일정과 주요 마일스톤을 검토했습니다.",
        "역할 및 책임 할당": "팀원들에게 역할을 배정하고 책임을 명확히 했습니다.",
        "질의응답 세션": "팀원들의 질문에 대해 답변했습니다."
    },
    "conclusions": [
        "프로젝트 목표가 명확하게 정의되었습니다.",
        "일정이 소폭 조정된 후 승인되었습니다.",
        "역할 및 책임에 대한 합의가 이루어졌습니다."
    ],
    "action_items": [
        "앨리스는 다음 회의까지 상세한 프로젝트 계획을 준비합니다.",
        "밥은 이해관계자들로부터 초기 요구사항을 수집합니다.",
        "찰리는 프로젝트 관리 도구를 설정합니다."
    ]
}

# Word 문서 생성
doc = Document()

# 제목 추가
doc.add_heading(meeting_info['title'], 0)

# 날짜 및 시간
doc.add_paragraph(f"날짜: {meeting_info['date']}")
doc.add_paragraph(f"시간: {meeting_info['time']}")
doc.add_paragraph(f"장소: {meeting_info['location']}")

# 참석자 목록
doc.add_heading('참석자', level=1)
for attendee in meeting_info['attendees']:
    doc.add_paragraph(attendee, style='List Bullet')

# 안건 목록
doc.add_heading('안건', level=1)
for item in meeting_info['agenda']:
    doc.add_paragraph(item, style='List Number')

# 논의된 내용
doc.add_heading('논의 내용', level=1)
for topic, details in meeting_info['discussion'].items():
    doc.add_heading(topic, level=2)
    doc.add_paragraph(details)

# 결론
doc.add_heading('결론', level=1)
for conclusion in meeting_info['conclusions']:
    doc.add_paragraph(conclusion, style='List Bullet')

# 후속 조치 항목
doc.add_heading('후속 조치', level=1)
for item in meeting_info['action_items']:
    doc.add_paragraph(item, style='List Bullet')

# 문서 저장
doc.save('회의록.docx')

 

마치며

python-docx를 이용하면 파이썬에서 만든 딕셔너리, 리스트를 MS워드로 옮길 수 있습니다. 개인적으로 어떤 기록을 저장하려면 with open을 이용해 txt를 했었는데 python-docx가 더 간편하게 코드를 작성할 수 있어서 활용하기 편한 것 같습니다. 더구나, 연계 작업(워드파일을 만들어서 이메일로 한꺼번에 발송)을 할 때 파이썬 하나로 한꺼번에 할 수 있어서 효율적인 작업을 할 수 있지 않나 이런 생각을 해봅니다.

 

함께 보면 좋은 글

 

 

[업무자동화] 윈도우 작업스케줄러 사용해 파이썬 실행하기

원도우 작업 스케줄러를 사용하면 정해진 시간에 파이썬 파일을 실행시킬 수 있습니다. 작업 스케줄러 실행하기 먼저 작업스케줄러를 실행시켜 봅시다. 밑의 그림과 같이 왼쪽 아래에 검색 창

seong6496.tistory.com

 

 

 

Win32com으로 엑셀 다루기

Win32com 이라는 모듈이 있습니다. 윈도우 프로그램을 컨트롤 하는 모듈인데 Win32com 모듈로 엑셀을 켠 상태로 다룰 수 있다 해서 한 번 해보았습니다. 엑셀을 켠 상태에서 할 수 있는게 장점이자 단

seong6496.tistory.com

 

 

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY