--- src/main/webapp/js/user/fax/exelUpload.js
+++ src/main/webapp/js/user/fax/exelUpload.js
... | ... | @@ -232,7 +232,22 @@ |
| 232 | 232 |
var workbook = XLSX.read(data, {type: 'array'});
|
| 233 | 233 |
var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
| 234 | 234 |
var jsonData = XLSX.utils.sheet_to_json(firstSheet, {header: 1});
|
| 235 |
+ findInvalidDBCharacters(jsonData); |
|
| 235 | 236 |
processExcelData(jsonData); |
| 237 |
+ } else if (extension === 'xls') {
|
|
| 238 |
+ var data = e.target.result; |
|
| 239 |
+ var workbook = XLSX.read(data, { type: 'binary' });
|
|
| 240 |
+ var firstSheet = workbook.Sheets[workbook.SheetNames[0]]; |
|
| 241 |
+ var jsonData = XLSX.utils.sheet_to_json(firstSheet, { header: 1 });
|
|
| 242 |
+ |
|
| 243 |
+ // 문제 데이터를 확인하는 함수 호출 |
|
| 244 |
+ findInvalidDBCharacters(jsonData); |
|
| 245 |
+ |
|
| 246 |
+ |
|
| 247 |
+ processExcelData(jsonData); |
|
| 248 |
+ } else if (extension === 'txt') {
|
|
| 249 |
+ var textData = e.target.result; |
|
| 250 |
+ processTextData(textData); |
|
| 236 | 251 |
} else {
|
| 237 | 252 |
alert('지원되지 않는 파일 형식입니다.');
|
| 238 | 253 |
} |
... | ... | @@ -241,7 +256,31 @@ |
| 241 | 256 |
}; |
| 242 | 257 |
if (extension === 'xlsx') {
|
| 243 | 258 |
reader.readAsArrayBuffer(file); |
| 244 |
- } |
|
| 259 |
+ } else if (extension === 'xls') {
|
|
| 260 |
+ reader.readAsBinaryString(file); // xls 파일에 적절한 read 메서드 호출 |
|
| 261 |
+ } else if (extension === 'txt') {
|
|
| 262 |
+ reader.readAsText(file); |
|
| 263 |
+ } |
|
| 264 |
+ } |
|
| 265 |
+} |
|
| 266 |
+ |
|
| 267 |
+//문제 데이터를 확인하는 함수 |
|
| 268 |
+function findInvalidDBCharacters(jsonData) {
|
|
| 269 |
+ console.log('DB 입력 값 검사 중...');
|
|
| 270 |
+ const invalidCharPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; // 4바이트 유니코드 문자 (이모지 등) |
|
| 271 |
+ for (let rowIndex = 0; rowIndex < jsonData.length; rowIndex++) {
|
|
| 272 |
+ const row = jsonData[rowIndex]; |
|
| 273 |
+ if (Array.isArray(row)) {
|
|
| 274 |
+ for (let colIndex = 0; colIndex < row.length; colIndex++) {
|
|
| 275 |
+ const cell = row[colIndex]; |
|
| 276 |
+ if (typeof cell === 'string' && invalidCharPattern.test(cell)) {
|
|
| 277 |
+ console.warn('허용되지 않는 문자: row', rowIndex + 1,', col ', colIndex + 1, ', value:', cell);
|
|
| 278 |
+ // 허용되지 않는 문자를 제거 (선택 사항) |
|
| 279 |
+ row[colIndex] = cell.replace(invalidCharPattern, ''); |
|
| 280 |
+ console.log('수정된 값:', row[colIndex]);
|
|
| 281 |
+ } |
|
| 282 |
+ } |
|
| 283 |
+ } |
|
| 245 | 284 |
} |
| 246 | 285 |
} |
| 247 | 286 |
|
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?