[업무자동화] 파이썬으로 회의록.doc 만들기
- Python/업무자동화
- 2024. 8. 30.
파이썬 회의록을 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가 더 간편하게 코드를 작성할 수 있어서 활용하기 편한 것 같습니다. 더구나, 연계 작업(워드파일을 만들어서 이메일로 한꺼번에 발송)을 할 때 파이썬 하나로 한꺼번에 할 수 있어서 효율적인 작업을 할 수 있지 않나 이런 생각을 해봅니다.
함께 보면 좋은 글
'Python > 업무자동화' 카테고리의 다른 글
[파이썬] 이미지 클립보드에 복사 붙여넣기 (0) | 2024.04.06 |
---|---|
[파이썬] 클립보드 텍스트 복사 붙여넣기 (0) | 2024.04.04 |
[업무자동화] 파이썬으로 키보드 제어하기 (0) | 2024.04.01 |
[업무 자동화 파이썬] Listener를 이용한 마우스 이벤트 제어 (0) | 2024.03.30 |
[업무 자동화 파이썬] pyautogui로 마우스 제어하기 (0) | 2024.03.28 |