# excel-export Specification ## Purpose TBD - created by archiving change add-meeting-assistant-mvp. Update Purpose after archive. ## Requirements ### Requirement: Excel Report Generation The middleware server SHALL generate Excel reports from meeting data using templates. #### Scenario: Successful export - **WHEN** user requests GET /api/meetings/:id/export - **THEN** server SHALL generate Excel file and return as downloadable stream #### Scenario: Export non-existent meeting - **WHEN** user requests export for non-existent meeting ID - **THEN** server SHALL return HTTP 404 ### Requirement: Template-based Generation The Excel export SHALL use openpyxl with template files and cell coordinate mapping. #### Scenario: Cell coordinate filling - **WHEN** Excel is generated from template `meeting_template.xlsx` - **THEN** data SHALL be filled into specific cells: - D3: meeting subject - D4: meeting time - D5: chairperson - F4: location - F5: recorder - D6: attendees (comma separated) - C8: meeting number (M-YYYYMMDD-XX format) - D8: conclusions (newline separated if multiple) #### Scenario: Dynamic row filling for action items - **WHEN** meeting has action items - **THEN** rows SHALL be filled starting from row 10: - Column C: action item system code (A-YYYYMMDD-XX) - Column D: action item content - Column F: owner - Column G: due date - Column H: status (Open/In Progress/Done/Delayed) #### Scenario: Template path resolution - **WHEN** export is requested - **THEN** server SHALL load template from `backend/template/meeting_template.xlsx` ### Requirement: Complete Data Inclusion The exported Excel SHALL include all meeting metadata, conclusions, and action items. #### Scenario: Full metadata export - **WHEN** Excel is generated - **THEN** it SHALL include subject, meeting_time, location, chairperson, recorder, attendees, and meeting_number #### Scenario: Conclusions export - **WHEN** Excel is generated with multiple conclusions - **THEN** all conclusions SHALL be merged with newline separator into cell D8 #### Scenario: Action items export with status - **WHEN** Excel is generated - **THEN** all action items SHALL be listed with system_code, content, owner, due_date, and status ### Requirement: Template Management Admin users SHALL be able to manage Excel templates. #### Scenario: Admin template access - **WHEN** admin user accesses template management - **THEN** they SHALL be able to upload, view, and update Excel templates ### Requirement: Meeting Number Generation The system SHALL automatically generate meeting numbers for each meeting record. #### Scenario: Auto-generate meeting number - **WHEN** a new meeting is created - **THEN** system SHALL generate meeting number in format `M-YYYYMMDD-XX` where XX is daily sequence #### Scenario: Meeting number uniqueness - **WHEN** multiple meetings are created on same date - **THEN** each SHALL receive unique sequential number (M-20251211-01, M-20251211-02, etc.) #### Scenario: Meeting number in export - **WHEN** Excel is exported - **THEN** meeting_number SHALL be displayed in cell C8