엑셀 Import · Export 연계
수십 년간 누적된 단가표 · BOM · 견적서 양식을 버리지 않습니다. 현업이 익숙한 엑셀을 그대로 사용하되, CPQ가 검증·저장·이력 관리를 담당하여 "엑셀 자유도 + 시스템의 정합성"을 동시에 확보합니다.
왜 엑셀 연계가 필수인가
현업 학습 비용 최소화
품질·자재 담당자는 평생 엑셀로 일해 왔습니다. 익숙한 양식 그대로 일괄 등록·수정이 가능해야 합니다.
대량 마스터 일괄 처리
수천 건의 단가·옵션·BOM을 화면에서 한 건씩 입력할 수 없습니다. 엑셀 업로드 한 번이 답입니다.
외부 협력사와 양식 호환
고객사 · 벤더와 주고받는 견적·발주서는 여전히 xlsx입니다. CPQ가 그 양식을 그대로 출력합니다.
지원 시나리오
| 구분 | 대상 데이터 | 방향 | 처리 방식 | 주기 |
|---|---|---|---|---|
| 마스터 | 제품 단가표 | Import | 일괄 업로드 + 검증 리포트 | 월 1회 / 수시 |
| 마스터 | 옵션 호환성 규칙 | Import | 템플릿 기반 업로드 | 분기 1회 |
| 마스터 | 고객사 등급 단가 | Import | 업로드 + 미리보기 승인 | 수시 |
| 거래 | 견적서 | Export | 회사 양식 PDF / xlsx 자동 생성 | 건별 |
| 거래 | BOM 명세서 | Export | 승인 견적 → BOM xlsx | 건별 |
| 분석 | 월간 견적 실적 | Export | 피벗 가능한 raw 데이터 | 월 1회 / 수시 |
① 단가표 일괄 Import — 흐름
템플릿 다운로드
관리자가 표준 단가표 템플릿(xlsx)을 다운로드합니다. 컬럼·자료형·필수값이 사전 정의되어 있습니다.
엑셀에서 작성 / 수정
현업이 익숙한 엑셀에서 단가를 입력하고 저장합니다. 수식·필터·복사붙여넣기 모두 자유롭게 사용 가능.
업로드 & 자동 검증
CPQ가 행 단위로 자료형·필수값·중복·참조 무결성을 검증하고, 오류 행을 컬러로 표시한 결과 시트를 돌려줍니다.
미리보기 → 승인 → 반영
관리자는 검증 통과 데이터의 변경 전/후를 미리보기 한 뒤 승인합니다. 승인 즉시 새 버전으로 마스터에 반영됩니다.
변경 이력 자동 기록
누가 언제 어떤 행을 어떻게 바꿨는지 모두 감사 로그로 남습니다. 이전 버전으로 롤백도 가능합니다.
업로드 화면 예시
여기에 엑셀 파일을 끌어다 놓으세요
지원 형식 : .xlsx, .xls (최대 10MB)
② 단가표 템플릿 (Import 예시)
| A · 제품코드 | B · 제품명 | C · 시리즈 | D · 정격전압(V) | E · 정격전류(A) | F · 기준단가(원) | G · 적용일 | |
|---|---|---|---|---|---|---|---|
| 1 | SG-H22-A1 | 고압 수배전반 22.9kV | HV-Series | 22,900 | 630 | 12,500,000 | 2026-04-01 |
| 2 | SG-H22-A2 | 고압 수배전반 22.9kV | HV-Series | 22,900 | 1,250 | 15,800,000 | 2026-04-01 |
| 3 | SG-L04-B1 | 저압 분전반 380V | LV-Series | 380 | 400 | 3,200,000 | 2026-04-01 |
| 4 | SG-L04-B2 | 저압 분전반 380V | LV-Series | 380 | 800 | 4,650,000 | 2026-04-01 |
| 5 | SG-AC-C1 | 자동제어반 (Type C) | AC-Series | 220 | 100 | 2,800,000 | 2026-04-01 |
③ 검증 결과 리포트 예시
CPQ가 업로드된 파일을 행 단위로 검증한 결과를 반환합니다. 색상으로 정상 · 경고 · 오류를 구분합니다.
| 제품코드 | 기준단가 | 적용일 | 검증 결과 | 메시지 | |
|---|---|---|---|---|---|
| 1 | SG-H22-A1 | 12,500,000 | 2026-04-01 | ✔ 정상 | 신규 추가 |
| 2 | SG-H22-A2 | 15,800,000 | 2026-04-01 | ✔ 정상 | 단가 변경 (+3.2%) |
| 3 | SG-L04-B1 | 3,200,000 | 2026-04-01 | ⚠ 경고 | 전월 대비 −12%, 승인자 확인 필요 |
| 4 | SG-L04-B2 | 4,650,000 | 2026-04-01 | ✔ 정상 | 변경 없음 |
| 5 | SG-AC-C9 | 2,800,000 | - | ✘ 오류 | 존재하지 않는 제품코드 / 적용일 누락 |
④ 견적서 Export — 회사 양식 그대로
| 견 적 서 | ||||||
|---|---|---|---|---|---|---|
| 1 | 고객사 | 대성 E&C 주식회사 | 견적번호 | Q-2604-0128 | ||
| 2 | 프로젝트 | 평택 데이터센터 증설 | 발행일 | 2026-04-10 | ||
| 3 | 담당자 | 김영업 과장 / 010-1234-5678 | 유효기간 | 2026-05-10 | ||
| 4 | 품목 | 사양 | 수량 | 단가 | 금액 | 비고 |
| 5 | SG-H22-A2 | 22.9kV / 1,250A | 4 | 15,800,000 | 63,200,000 | HV 옵션 포함 |
| 6 | SG-L04-B2 | 380V / 800A | 12 | 4,650,000 | 55,800,000 | 표준 |
| 7 | SG-AC-C1 | 자동제어반 Type C | 8 | 2,800,000 | 22,400,000 | 원격감시 옵션 |
| 8 | 공급가액 | 141,400,000 | ||||
| 9 | 부가세 (10%) | 14,140,000 | ||||
| 10 | 합계 | 155,540,000 | ||||
⑤ Export 옵션
📄 견적서 양식
회사 표준 양식 · 영문 양식 · 고객사 맞춤 양식 중 선택. 로고·인감 자동 삽입.
🧾 BOM 명세서
승인 견적의 자재를 부품 단위까지 전개하여 자재팀·생산팀에 전달.
📊 분석용 Raw 데이터
월간/분기 견적 raw 데이터를 피벗 가능한 형태로 다운로드. 경영진 보고용.
⑥ 기술 구현 (백엔드 예시)
Spring Boot + Apache POI 기반의 단순화된 Import 처리 코드입니다.
// PriceMasterImportService.kt fun importPriceMaster(file: MultipartFile): ImportResult { val workbook = WorkbookFactory.create(file.inputStream) val sheet = workbook.getSheetAt(0) val errors = mutableListOf<RowError>() val validRows = mutableListOf<PriceRow>() sheet.drop(1).forEachIndexed { idx, row -> try { val code = row.getCell(0).stringCellValue.trim() val price = row.getCell(5).numericCellValue.toLong() val date = row.getCell(6).localDateTimeCellValue.toLocalDate() validator.validate(code, price, date) // 자료형·참조 검증 validRows += PriceRow(code, price, date) } catch (e: ValidationException) { errors += RowError(rowNum = idx + 2, message = e.message) } } // 검증 결과 시트 생성 → 사용자에게 다운로드 제공 val reportFile = reportWriter.writeReport(validRows, errors) return ImportResult( total = sheet.lastRowNum, success = validRows.size, failed = errors.size, report = reportFile ) }
적용 라이브러리 & 기준
| 영역 | 라이브러리 | 비고 |
|---|---|---|
| 엑셀 읽기 / 쓰기 | Apache POI 5.x | xlsx · xls 모두 지원, 스트리밍 모드로 대용량 처리 |
| 템플릿 기반 출력 | JXLS | 마커 기반 템플릿으로 회사 양식 그대로 출력 |
| CSV | OpenCSV | 분석/협력사 데이터 교환용 |
| PDF 변환 | Aspose.Cells / LibreOffice headless | 견적서 PDF 자동 생성 |
| 업로드 한도 | 최대 10MB / 50,000행 | 이상은 분할 업로드 권장 |