[업무자동화] 파이썬으로 회의록.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

    ....