엑셀업로드 설명 및 이모지 제거 추가
This commit is contained in:
parent
f832bd20e0
commit
4531dc86c6
@ -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> -->
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user