--- src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/include/addrListforExcel.jsp
... | ... | @@ -160,17 +160,14 @@ |
| 160 | 160 |
var workbook = XLSX.read(data, { type: 'array' });
|
| 161 | 161 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 162 | 162 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
| 163 |
- console.log('xlsx jsonData : ', jsonData);
|
|
| 164 | 163 |
// 문제 데이터를 확인하는 함수 호출 |
| 165 | 164 |
findInvalidDBCharacters(jsonData); |
| 166 | 165 |
processExcelData(jsonData); |
| 167 | 166 |
} else if (extension === 'xls') {
|
| 168 |
- console.log('xls extension detected');
|
|
| 169 | 167 |
var data = e.target.result; |
| 170 | 168 |
var workbook = XLSX.read(data, { type: 'binary' });
|
| 171 | 169 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 172 | 170 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
| 173 |
- console.log('xls jsonData : ', jsonData);
|
|
| 174 | 171 |
|
| 175 | 172 |
// 문제 데이터를 확인하는 함수 호출 |
| 176 | 173 |
findInvalidDBCharacters(jsonData); |
... | ... | @@ -179,7 +176,6 @@ |
| 179 | 176 |
processExcelData(jsonData); |
| 180 | 177 |
} else if (extension === 'txt') {
|
| 181 | 178 |
var textData = e.target.result; |
| 182 |
- console.log('txt data : ', textData);
|
|
| 183 | 179 |
processTextData(textData); |
| 184 | 180 |
} else {
|
| 185 | 181 |
alert('지원되지 않는 파일 형식입니다.');
|
... | ... | @@ -322,7 +318,7 @@ |
| 322 | 318 |
<div class="titBox"> |
| 323 | 319 |
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p> |
| 324 | 320 |
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p> |
| 325 |
- <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 321 |
+ <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 326 | 322 |
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p> |
| 327 | 323 |
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p> |
| 328 | 324 |
<!-- <button type="button" class="excel_btn" onclick="location.href='/download/addr/주소록_대량등록.xlsx'"><i class="downroad"></i>샘플파일 다운로드</button> --> |
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/include/FaxAddrListforExcel.jsp
... | ... | @@ -139,6 +139,19 @@ |
| 139 | 139 |
var workbook = XLSX.read(data, {type: 'array'});
|
| 140 | 140 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 141 | 141 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
| 142 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 143 |
+ findInvalidDBCharacters(jsonData); |
|
| 144 |
+ processExcelData(jsonData); |
|
| 145 |
+ } else if (extension === 'xls') {
|
|
| 146 |
+ var data = e.target.result; |
|
| 147 |
+ var workbook = XLSX.read(data, { type: 'binary' });
|
|
| 148 |
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 149 |
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
|
| 150 |
+ |
|
| 151 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 152 |
+ findInvalidDBCharacters(jsonData); |
|
| 153 |
+ |
|
| 154 |
+ |
|
| 142 | 155 |
processExcelData(jsonData); |
| 143 | 156 |
} else if (extension === 'txt') {
|
| 144 | 157 |
var textData = e.target.result; |
... | ... | @@ -151,8 +164,30 @@ |
| 151 | 164 |
}; |
| 152 | 165 |
if (extension === 'xlsx') {
|
| 153 | 166 |
reader.readAsArrayBuffer(file); |
| 167 |
+ } else if (extension === 'xls') {
|
|
| 168 |
+ reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 |
|
| 154 | 169 |
} else if (extension === 'txt') {
|
| 155 | 170 |
reader.readAsText(file); |
| 171 |
+ } |
|
| 172 |
+ } |
|
| 173 |
+} |
|
| 174 |
+ |
|
| 175 |
+//문제 데이터를 확인하는 함수 |
|
| 176 |
+function findInvalidDBCharacters(jsonData) {
|
|
| 177 |
+ console.log('DB 입력 값 검사 중...');
|
|
| 178 |
+ const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) |
|
| 179 |
+ for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) {
|
|
| 180 |
+ const row = jsonData[rowIndex]; |
|
| 181 |
+ if (Array.isArray(row)) {
|
|
| 182 |
+ for (let colIndex = 0; colIndex < row.length; colIndex++) {
|
|
| 183 |
+ const cell = row[colIndex]; |
|
| 184 |
+ if (typeof cell === 'string' && invalidCharPattern.test(cell)) {
|
|
| 185 |
+ console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell);
|
|
| 186 |
+ // 허용되지 않는 문자를 제거 (선택 사항) |
|
| 187 |
+ row[colIndex] = cell.replace(invalidCharPattern, ''); |
|
| 188 |
+ console.log('수정된 값:', row[colIndex]);
|
|
| 189 |
+ } |
|
| 190 |
+ } |
|
| 156 | 191 |
} |
| 157 | 192 |
} |
| 158 | 193 |
} |
... | ... | @@ -249,7 +284,7 @@ |
| 249 | 284 |
<div class="titBox"> |
| 250 | 285 |
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p> |
| 251 | 286 |
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p> |
| 252 |
- <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 287 |
+ <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 253 | 288 |
<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p> |
| 254 | 289 |
<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p> |
| 255 | 290 |
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p> |
--- src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/faxDataView.jsp
... | ... | @@ -667,7 +667,7 @@ |
| 667 | 667 |
<div class="titBox"> |
| 668 | 668 |
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p> |
| 669 | 669 |
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p> |
| 670 |
- <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 670 |
+ <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 671 | 671 |
<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p> |
| 672 | 672 |
<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p> |
| 673 | 673 |
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p> |
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
... | ... | @@ -337,6 +337,19 @@ |
| 337 | 337 |
var workbook = XLSX.read(data, {type: 'array'});
|
| 338 | 338 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 339 | 339 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
| 340 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 341 |
+ findInvalidDBCharacters(jsonData); |
|
| 342 |
+ processExcelData(jsonData); |
|
| 343 |
+ } else if (extension === 'xls') {
|
|
| 344 |
+ var data = e.target.result; |
|
| 345 |
+ var workbook = XLSX.read(data, { type: 'binary' });
|
|
| 346 |
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 347 |
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
|
| 348 |
+ |
|
| 349 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 350 |
+ findInvalidDBCharacters(jsonData); |
|
| 351 |
+ |
|
| 352 |
+ |
|
| 340 | 353 |
processExcelData(jsonData); |
| 341 | 354 |
} else if (extension === 'txt') {
|
| 342 | 355 |
var textData = e.target.result; |
... | ... | @@ -349,8 +362,30 @@ |
| 349 | 362 |
}; |
| 350 | 363 |
if (extension === 'xlsx') {
|
| 351 | 364 |
reader.readAsArrayBuffer(file); |
| 365 |
+ } else if (extension === 'xls') {
|
|
| 366 |
+ reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 |
|
| 352 | 367 |
} else if (extension === 'txt') {
|
| 353 | 368 |
reader.readAsText(file); |
| 369 |
+ } |
|
| 370 |
+ } |
|
| 371 |
+} |
|
| 372 |
+ |
|
| 373 |
+//문제 데이터를 확인하는 함수 |
|
| 374 |
+function findInvalidDBCharacters(jsonData) {
|
|
| 375 |
+ console.log('DB 입력 값 검사 중...');
|
|
| 376 |
+ const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) |
|
| 377 |
+ for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) {
|
|
| 378 |
+ const row = jsonData[rowIndex]; |
|
| 379 |
+ if (Array.isArray(row)) {
|
|
| 380 |
+ for (let colIndex = 0; colIndex < row.length; colIndex++) {
|
|
| 381 |
+ const cell = row[colIndex]; |
|
| 382 |
+ if (typeof cell === 'string' && invalidCharPattern.test(cell)) {
|
|
| 383 |
+ console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell);
|
|
| 384 |
+ // 허용되지 않는 문자를 제거 (선택 사항) |
|
| 385 |
+ row[colIndex] = cell.replace(invalidCharPattern, ''); |
|
| 386 |
+ console.log('수정된 값:', row[colIndex]);
|
|
| 387 |
+ } |
|
| 388 |
+ } |
|
| 354 | 389 |
} |
| 355 | 390 |
} |
| 356 | 391 |
} |
... | ... | @@ -686,7 +721,7 @@ |
| 686 | 721 |
<div class="titBox"> |
| 687 | 722 |
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p> |
| 688 | 723 |
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p> |
| 689 |
- <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 724 |
+ <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 690 | 725 |
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p> |
| 691 | 726 |
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p> |
| 692 | 727 |
</div> |
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
... | ... | @@ -387,6 +387,19 @@ |
| 387 | 387 |
var workbook = XLSX.read(data, {type: 'array'});
|
| 388 | 388 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 389 | 389 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
| 390 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 391 |
+ findInvalidDBCharacters(jsonData); |
|
| 392 |
+ processExcelData(jsonData); |
|
| 393 |
+ } else if (extension === 'xls') {
|
|
| 394 |
+ var data = e.target.result; |
|
| 395 |
+ var workbook = XLSX.read(data, { type: 'binary' });
|
|
| 396 |
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 397 |
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
|
| 398 |
+ |
|
| 399 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 400 |
+ findInvalidDBCharacters(jsonData); |
|
| 401 |
+ |
|
| 402 |
+ |
|
| 390 | 403 |
processExcelData(jsonData); |
| 391 | 404 |
} else if (extension === 'txt') {
|
| 392 | 405 |
var textData = e.target.result; |
... | ... | @@ -399,8 +412,30 @@ |
| 399 | 412 |
}; |
| 400 | 413 |
if (extension === 'xlsx') {
|
| 401 | 414 |
reader.readAsArrayBuffer(file); |
| 415 |
+ } else if (extension === 'xls') {
|
|
| 416 |
+ reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 |
|
| 402 | 417 |
} else if (extension === 'txt') {
|
| 403 | 418 |
reader.readAsText(file); |
| 419 |
+ } |
|
| 420 |
+ } |
|
| 421 |
+} |
|
| 422 |
+ |
|
| 423 |
+//문제 데이터를 확인하는 함수 |
|
| 424 |
+function findInvalidDBCharacters(jsonData) {
|
|
| 425 |
+ console.log('DB 입력 값 검사 중...');
|
|
| 426 |
+ const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) |
|
| 427 |
+ for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) {
|
|
| 428 |
+ const row = jsonData[rowIndex]; |
|
| 429 |
+ if (Array.isArray(row)) {
|
|
| 430 |
+ for (let colIndex = 0; colIndex < row.length; colIndex++) {
|
|
| 431 |
+ const cell = row[colIndex]; |
|
| 432 |
+ if (typeof cell === 'string' && invalidCharPattern.test(cell)) {
|
|
| 433 |
+ console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell);
|
|
| 434 |
+ // 허용되지 않는 문자를 제거 (선택 사항) |
|
| 435 |
+ row[colIndex] = cell.replace(invalidCharPattern, ''); |
|
| 436 |
+ console.log('수정된 값:', row[colIndex]);
|
|
| 437 |
+ } |
|
| 438 |
+ } |
|
| 404 | 439 |
} |
| 405 | 440 |
} |
| 406 | 441 |
} |
... | ... | @@ -761,7 +796,7 @@ |
| 761 | 796 |
<div class="titBox"> |
| 762 | 797 |
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p> |
| 763 | 798 |
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p> |
| 764 |
- <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 799 |
+ <p>- 구분선(|), 역슬래시(\, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
|
|
| 765 | 800 |
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p> |
| 766 | 801 |
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p> |
| 767 | 802 |
</div> |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?