엑셀업로드 설명 및 이모지 제거 추가

This commit is contained in:
hehihoho3@gmail.com 2025-01-10 09:28:29 +09:00
parent f832bd20e0
commit 4531dc86c6
5 changed files with 110 additions and 9 deletions

View File

@ -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) {
<div class="titBox">
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p>
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p>
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
<!-- <button type="button" class="excel_btn" onclick="location.href='/download/addr/주소록_대량등록.xlsx'"><i class="downroad"></i>샘플파일 다운로드</button> -->

View File

@ -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) {
<div class="titBox">
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p>
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p>
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>

View File

@ -667,7 +667,7 @@
<div class="titBox">
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다.</p>
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 이름 200byte, 메모 250byte까지 입력 가능합니다.</p>
<p>- 팩스 번호는 지역번호(02, 031, 033 등), 타사부가번호(030*, 050*, 060, 070, 080, 1**)로 시작하는 번호만 발송 가능합니다. </p>
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>

View File

@ -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){
<div class="titBox">
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p>
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p>
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
</div>

View File

@ -387,6 +387,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;
@ -399,12 +412,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) {
@ -761,7 +796,7 @@ $(document).on('click', '#errorExcelBtn', function() {
<div class="titBox">
<p>- 주소록은 한 번에 최대 30만건까지 등록(EXCEL파일, 최대용량 20MB) 가능합니다. </p>
<p>- 엑셀 파일에 비밀번호 설정, 제한된 보기, 수식 등이 설정되어 있는 경우 업로드가 불가합니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표(") 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 구분선(|), 역슬래시(, ₩), 큰따옴표("), 이모지(이모티콘) 등 발송불가 특수문자는 저장되지 않습니다.</p>
<p>- 이름 200byte, [*1*]~[*4*] 200byte, 메모 250byte까지 입력 가능합니다.</p>
<p>- 주소록 등록이 어려우신 경우에는 <a href="<c:url value='/web/mjon/addragency/selectAddrAgencyList.do'/>" style="font-weight: bold; color: blue;">주소록 입력대행</a> 메뉴를 이용하실 수 있습니다. </p>
</div>