diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp index 05bd9b7a..d7546594 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp @@ -160,17 +160,14 @@ function excelFileChange(file) { var workbook = XLSX.read(data, { type: 'array' }); var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 }); - console.log('xlsx jsonData : ', jsonData); // 문제 데이터를 확인하는 함수 호출 findInvalidDBCharacters(jsonData); processExcelData(jsonData); } else if (extension === 'xls') { - console.log('xls extension detected'); var data = e.target.result; var workbook = XLSX.read(data, { type: 'binary' }); var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 }); - console.log('xls jsonData : ', jsonData); // 문제 데이터를 확인하는 함수 호출 findInvalidDBCharacters(jsonData); @@ -179,7 +176,6 @@ function excelFileChange(file) { processExcelData(jsonData); } else if (extension === 'txt') { var textData = e.target.result; - console.log('txt data : ', textData); processTextData(textData); } else { alert('지원되지 않는 파일 형식입니다.'); @@ -322,7 +318,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {
- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.
- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
-- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.
+- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.
- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.
- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하실 수 있습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp index 9994d250..adc9c629 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp @@ -139,6 +139,19 @@ function excelFileChange(file) { var workbook = XLSX.read(data, {type: 'array'}); var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1}); + // 문제 데이터를 확인하는 함수 호출 + findInvalidDBCharacters(jsonData); + processExcelData(jsonData); + } else if (extension === 'xls') { + var data = e.target.result; + var workbook = XLSX.read(data, { type: 'binary' }); + var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; + var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 }); + + // 문제 데이터를 확인하는 함수 호출 + findInvalidDBCharacters(jsonData); + + processExcelData(jsonData); } else if (extension === 'txt') { var textData = e.target.result; @@ -151,12 +164,34 @@ function excelFileChange(file) { }; if (extension === 'xlsx') { reader.readAsArrayBuffer(file); + } else if (extension === 'xls') { + reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 } else if (extension === 'txt') { reader.readAsText(file); } } } +//문제 데이터를 확인하는 함수 +function findInvalidDBCharacters(jsonData) { + console.log('DB 입력 값 검사 중...'); + const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) + for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) { + const row = jsonData[rowIndex]; + if (Array.isArray(row)) { + for (let colIndex = 0; colIndex < row.length; colIndex++) { + const cell = row[colIndex]; + if (typeof cell === 'string' && invalidCharPattern.test(cell)) { + console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell); + // 허용되지 않는 문자를 제거 (선택 사항) + row[colIndex] = cell.replace(invalidCharPattern, ''); + console.log('수정된 값:', row[colIndex]); + } + } + } + } +} + // 엑셀 데이터 처리 함수 function processExcelData(data) { var keys = ['A', 'B', 'C']; @@ -249,7 +284,7 @@ $(document).on("click", "#duplicationChkAll", function(e) {- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.
- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
-- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.
+- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.
- 이름 200byte, 메모 250byte까지 입력 가능합니다.
- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다.
- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하실 수 있습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp index 76f490fb..cb2e332e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp @@ -667,7 +667,7 @@- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.
- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
-- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.
+- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.
- 이름 200byte, 메모 250byte까지 입력 가능합니다.
- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다.
- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하실 수 있습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp b/src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp index 7f87d21f..936d538e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp @@ -337,6 +337,19 @@ function excelFileChange(file) { var workbook = XLSX.read(data, {type: 'array'}); var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1}); + // 문제 데이터를 확인하는 함수 호출 + findInvalidDBCharacters(jsonData); + processExcelData(jsonData); + } else if (extension === 'xls') { + var data = e.target.result; + var workbook = XLSX.read(data, { type: 'binary' }); + var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; + var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 }); + + // 문제 데이터를 확인하는 함수 호출 + findInvalidDBCharacters(jsonData); + + processExcelData(jsonData); } else if (extension === 'txt') { var textData = e.target.result; @@ -349,12 +362,34 @@ function excelFileChange(file) { }; if (extension === 'xlsx') { reader.readAsArrayBuffer(file); + } else if (extension === 'xls') { + reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 } else if (extension === 'txt') { reader.readAsText(file); } } } +//문제 데이터를 확인하는 함수 +function findInvalidDBCharacters(jsonData) { + console.log('DB 입력 값 검사 중...'); + const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) + for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) { + const row = jsonData[rowIndex]; + if (Array.isArray(row)) { + for (let colIndex = 0; colIndex < row.length; colIndex++) { + const cell = row[colIndex]; + if (typeof cell === 'string' && invalidCharPattern.test(cell)) { + console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell); + // 허용되지 않는 문자를 제거 (선택 사항) + row[colIndex] = cell.replace(invalidCharPattern, ''); + console.log('수정된 값:', row[colIndex]); + } + } + } + } +} + // 엑셀 데이터 처리 함수 function processExcelData(data) { @@ -686,7 +721,7 @@ function popMore(e){- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.
- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
-- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.
+- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.
- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.
- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하실 수 있습니다.
- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.
- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.
-- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.
+- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.
- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.
- 주소록 등록이 어려우신 경우에는 주소록 입력대행 메뉴를 이용하실 수 있습니다.