컴포넌트 정보들을 사용하여 엑셀 컬럼 너비 및 병합정보를 계산하여 반환한다.
Parameters | Type | Description |
---|---|---|
arrTargetInfo | Array | 대상컴포넌트 및 옵션 정보 배열 |
bUseWidth | BOOL | [옵션] 너비정보배열 사용여부 (기본값:false) |
Type | Description |
---|---|
class | 컬럼 너비 및 병합정보 오브젝트(실패시 null) |
대상컴포넌트 및 옵션 정보 오브젝트 구조는 아래와 같다.
** 대상컴포넌트 및 옵션 정보 오브젝트 = { objInst: objGrid, // 대상 컴포넌트(그리드, 멀티라인그리드, 트리그리드, 테이블뷰) bIncludeLinenumber: true, // 라인넘버 포함여부(그리드일때만 동작, 기본값:false) bIncludeStatColumn: true, // 통계컬럼 포함여부(그리드일때만 동작, 기본값:false) arrExcludeCol: [1,5] // 제외대상 컬럼인덱스 배열(그리드일때만 동작, 기본값:[]) };
컬럼 너비 및 병합정보 오브젝트 구조는 아래와 같다.
** 컬럼 너비 및 병합정보 오브젝트 = { excel_column_width_arr: "", // 엑셀의 컬럼 너비 정보 컴포넌트이름: [ { start:병합시작인덱스, end:병합끝인덱스 }, .... ], // 컴포넌트에 해당하는 컬럼 병합정보 배열 : : };
** bUseWidth 파라미터
bUseWidth 파라미터에 true 지정시, arrTargetInfo 파라미터에는 컬럼별 너비정보 배열을 지정한다.
** 컬럼별 너비정보 배열 = [ [1번째 컬럼너비, 2번째 컬럼너비, ...], // 1번째 행 [1번째 컬럼너비, 2번째 컬럼너비, ...], // 2번째 행 : : ];
컬럼 너비 및 병합정보 오브젝트 구조는 아래와 같다.
** 컬럼 너비 및 병합정보 오브젝트 = { excel_column_width_arr: "", // 엑셀의 컬럼 너비 정보 merge_info: // 행별 컬럼 병합정보 배열 [ [ { start:병합시작인덱스, end:병합끝인덱스 }, .... ], // 1번째 행에 해당하는 컬럼 병합정보 배열 [ { start:병합시작인덱스, end:병합끝인덱스 }, .... ], // 2번째 행에 해당하는 컬럼 병합정보 배열 : : ] };
function btnTest_on_mouseup(objInst)
{
var arrTargetInfo = [
{
objInst: grid01, // 대상 컴포넌트(그리드, 멀티라인그리드, 트리그리드, 테이블뷰)
}
,{
objInst: grid02, // 대상 컴포넌트(그리드, 멀티라인그리드, 트리그리드, 테이블뷰)
bIncludeLinenumber: true, // 라인넘버 포함여부(그리드일때만 동작, 기본값:false)
bIncludeStatColumn: true, // 통계컬럼 포함여부(그리드일때만 동작, 기본값:false)
arrExcludeCol: [0,2] // 제외대상 컬럼인덱스 배열(그리드일때만 동작, 기본값:[])
}
,{
objInst: tableview01, // 대상 컴포넌트(그리드, 멀티라인그리드, 트리그리드, 테이블뷰)
}
,{
objInst: tableview02, // 대상 컴포넌트(그리드, 멀티라인그리드, 트리그리드, 테이블뷰)
}
];
// 그리드와 테이블뷰에 대해서 엑셀의 컬럼 너비 및 병합정보 취득
var objLayoutInfo = excel01.getexcellayoutinfo(arrTargetInfo);
/*
objLayoutInfo :
{
excel_column_width_arr : 엑셀의 컬럼 너비 정보
컴포넌트1 : 컴포넌트에 해당하는 컬럼 병합정보 배열
[ { start:병합시작인덱스, end:병합끝인덱스 }, .... ]
컴포넌트2
:
:
}
*/
console.log(objLayoutInfo);
/*
{
"excel_column_width_arr": [39, 4, 23, 14, 19, 21, 12, 28, 5, 26, 29, 53, 27, 67, 33, 24, 42],
"grid01": [{"start": 0,"end": 5},{"start": 6,"end": 7},{"start": 8,"end": 11},{"start": 12,"end": 16}],
"grid02": [{"start": 0,"end": 4},{"start": 5,"end": 7},{"start": 8,"end": 10},{"start": 11,"end": 13}],
"tableview01": [{"start": 0,"end": 0},{"start": 1,"end": 9},{"start": 10,"end": 12},{"start": 13,"end": 14},{"start": 15,"end": 17}],
"tableview02": [{"start": 0,"end": 2},{"start": 3,"end": 3},{"start": 4,"end": 5},{"start": 6,"end": 6},{"start": 7,"end": 8},{"start": 9,"end": 15}]
}
*/
// 2. 컬럼 너비정보를 사용하여 EXCEL컴포넌트의 setcolumnwidth 로 너비 설정
// 3. 병합정보를 사용하여 EXCEL컴포넌트의 setcellmerge 로 병합 처리
}
function btnTest2_on_mouseup(objInst)
{
// 행별 너비 정보
var arrWidthInfo = [
[40, 120, 100, 180], // 1번째 행
[80, 80, 80, 80] // 2번째 행
];
// 그리드와 테이블뷰에 대해서 엑셀의 컬럼 너비 및 병합정보 취득
var objLayoutInfo = excel01.getexcellayoutinfo(arrWidthInfo, true);
/*
objLayoutInfo :
{
excel_column_width_arr : 엑셀의 컬럼 너비 정보
merge_info : 행별 컬럼 병합정보 배열
[
[ { start:병합시작인덱스, end:병합끝인덱스 }, .... ]
[ { start:병합시작인덱스, end:병합끝인덱스 }, .... ]
:
:
]
}
*/
console.log(objLayoutInfo);
/*
{
"excel_column_width_arr": [40, 40, 80, 80, 20, 60, 120],
"merge_info": [
[{"start": 0,"end": 0},{"start": 1,"end": 2},{"start": 3,"end": 4},{"start": 5,"end": 6}],
[{"start": 0,"end": 1},{"start": 2,"end": 2},{"start": 3,"end": 3},{"start": 4,"end": 5}],
]
}
*/
}