사용자 도구

사이트 도구


white:excel_upload

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
white:excel_upload [2018/10/12 03:02] – 만듦 taekguwhite:excel_upload [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ===== Excel Upload ===== ===== Excel Upload =====
 +===== Upload Action ====
 +<code javascript>
 + <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>
 +</code>
 +
 +<code html>
 +
 + <%-- 업로드 --%>
 + <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>
 +</code>
 +==== 사번을 모아서 성명처리 ====
 +pee0330.jsp
 +<code javascript>
 + 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);
 + }
 + }
 + }
 +</code>
 +
white/excel_upload.1539313354.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)