사용자 도구

사이트 도구


white:excel_upload

Excel Upload

Upload Action

			<h5:Action name="upload" type="SCRIPT" >
				isExcelUpload = true;
				let dtm_hol_plan_id = getDataGridColumnValue("mySheet1", "dtm_hol_plan_id");
 
				var params = {Mode:"HeaderMatch",ExtendParam:"auto_value_column=dtm_hol_plan_emp_id" 
				+ ",dtm_hol_plan_id=" + dtm_hol_plan_id};
				mySheet2.LoadExcel(params);
			</h5:Action>
			<%-- 업로드 --%>
			<h5:Action name="upload" type="SCRIPT">
				<%-- 
					ExtendParam value set 추가하는 컬럼들은 ibsheet에 꼭 존재 해야하는 컬럼임.
 
					columns list 설명 
					auto_value_column : pk컬럼 시퀀스 치환을 위한 자동증감값 입력해주는 용도임.
					company_cd : org_cd로 org_id를 찾아줄때 사용할 컬럼임.					
					업로드시 필요한 컬럼이 있을경우 ,컬럼명=값 을 추가해주면 됩니다.
 
					** ExtendParam에 사용한 컬럼들은 헤더의 라벨도  동일하게 적용해주셔야합니다.
 
					ex)sac_temp_id 컬럼이 pk컬럼임. 또한 ibsheet에 존재하는 컬럼임.
					   company_cd 컬럼은 org_id를 찾아주기위한 컬럼.
				 --%>
				var params = { Mode:"HeaderMatch", ExtendParam:"auto_value_column=phm_lang_est_id,est_grd_cd=" + "10" };
				mySheet1.LoadExcel( params );
			</h5:Action>

사번을 모아서 성명처리

pee0330.jsp

		function f_replace_emp(emps, emp){
			emps.set(emp.emp_no, $.extend(emps.get(emp.emp_no), emp) );
		}
		function f_add_emp(emps, emp_no){
			if( emp_no == undefined || emp_no.length == 0 ) return;
			if( !emps.has(emp_no) )
				emps.set( emp_no, {emp_no:emp_no} );
		}
		function f_get_emp_no(emps) {
			let emp_nos = [];
			emps.forEach( function(emp){ emp_nos.push(emp.emp_no); } );
			return emp_nos;
		}
		mySheet2_OnLoadExcel = function() {
			let sheet = mySheet2;
			let headerrow = sheet.HeaderRows();
			let selRow = -1;
			let fail_list = [];
			let myEmps = new Map()
			// 사번을 모으자
			for( let i = 0; i != sheet.GetTotalRows(); ++i ) {
				selRow = i + headerrow;
				f_add_emp(myEmps, sheet.GetCellValue( selRow, "emp_no" ) );
				f_add_emp(myEmps, sheet.GetCellValue( selRow, "appr_emp_no" ) );
			}
			let empNos = f_get_emp_no(myEmps).join();
			var requestObject = {
					"HEADER":headerObject,
					"BODY":{ "ME_PEE0330_05":[ {
								"company_cd":getCompanyCd(),
								"locale_cd":getLocaleCode(),
								"emp_nos":empNos
							} ] }
				};
 
			execute(
				"checkEmpNo",
				"PEE0330_00_R03",
				requestObject,
				function( actionType, obj ) {
					var data = obj[ "ME_PEE0330_06" ];
					if( data != undefined && data != null && data != "" ) {
						data.forEach(function(rEmp){
							f_replace_emp(myEmps, {
								emp_id: rEmp.emp_id,
								emp_no: rEmp.emp_no,
								emp_nm: rEmp.emp_nm,
								pos_nm: rEmp.pos_nm,
								org_nm1: rEmp.org_nm1,
								org_nm2: rEmp.org_nm2,
								org_nm3: rEmp.org_nm3,
								duty_nm: rEmp.duty_nm
								});
						});
					} else {
						alert("ERROR Load EMP_NO!!");
					}
				},
				function( actionType, obj ) {
					alert("ERROR Load EMP_NO");
				},
				false
			);
 
			// 사번에 대한 정보를 얻어 왔음
			//console.log(myEmps);
			// 사원정보를 채우자
			console.log(myEmps);
			for( let i = 0; i != sheet.GetTotalRows(); ++i ) {
				selRow = i + headerrow;
				let emp = myEmps.get(sheet.GetCellValue( selRow, "emp_no" ));
				if( emp != undefined ) {
					sheet.SetCellValue( selRow, "emp_id", emp.emp_id);
					sheet.SetCellValue( selRow, "emp_nm", emp.emp_nm);
					sheet.SetCellValue( selRow, "pos_nm", emp.pos_nm);
					sheet.SetCellValue( selRow, "org_nm1", emp.org_nm1);
					sheet.SetCellValue( selRow, "org_nm2", emp.org_nm2);
					sheet.SetCellValue( selRow, "org_nm3", emp.org_nm3);
					sheet.SetCellValue( selRow, "duty_nm", emp.duty_nm);
				}
				emp = myEmps.get(sheet.GetCellValue( selRow, "appr_emp_no" ));
				if( emp != undefined ) {
					sheet.SetCellValue( selRow, "appr_emp_id", emp.emp_id);
					sheet.SetCellValue( selRow, "appr_emp_nm", emp.emp_nm);
				}
			}
		}
white/excel_upload.txt · 마지막으로 수정됨: 2025/04/15 10:05 저자 127.0.0.1