setCurrentInfo (method)

getCurrentInfo로 추출한 컬럼 정보 문자열을 통해 현재 시트의 컬럼 상태(순서, 너비, 숨김 등)를 복원하는 메소드입니다.

Syntax

boolean setCurrentInfo( info );

Parameters

Name Type Required Description
info string 필수 getCurrentInfo에서 추출한 컬럼 정보 문자열

Return Value

boolean : 성공 시 true, 실패 시 false

참고

setCurrentInfo에 넣는 값(저장 시점의 정보)의 컬럼 Name 목록이 현재 시트 ColsName과 다르면(그 사이 컬럼을 추가하거나 삭제하거나 이름을 변경한 경우) 복원할 수 없어 "입력한 시트 정보가 올바르지 않습니다." 경고가 표시됩니다.
이 경우 기존 저장 정보를 삭제하고 현재 컬럼 기준으로 다시 저장해야 합니다.
반면 컬럼 너비, 순서, 숨김 변경이나 Name이 동일한 상태의 Type 변경은 정상적으로 복원됩니다. 즉 복원 여부는 컬럼 Name 목록이 동일한지로 결정됩니다.

Example

// getCurrentInfo에서 추출한 문자열로 시트 컬럼 상태를 복원
var info = sheet.getCurrentInfo();
sheet.setCurrentInfo(info);
// 서버에 저장된 레이아웃을 시트 생성 완료 후 복원
var OPTS = {
    Events: {
        onRenderFirstFinish: function(evtParam) {
            $.ajax({
                url: "/api/layout/load",
                data: { userId: userId },
                success: function(data) {
                    if (data.layoutInfo) {
                        evtParam.sheet.setCurrentInfo(data.layoutInfo);
                    }
                }
            });
        }
    }
};
// [응용] 복원 전 호환성 확인 — 저장값과 현재 컬럼(Name 목록)이 다르면 setCurrentInfo를 건너뛰어 경고창을 사전에 회피
// 참고: CurrentInfo의 내부 JSON 구조([[LeftCols, Cols, RightCols], ...])에 의존 (getCurrentInfo 반환 구조 참조)
function isSameColStructure(infoA, infoB) {
    function colNames(info) {
        try {
            var parsed = (typeof info === "string") ? JSON.parse(info) : info;
            var groups = parsed[0];   // [LeftCols, Cols, RightCols]
            var names = [];
            for (var i = 0; i < groups.length; i++) names = names.concat(groups[i]);
            return names;             // 순서 무관, 이름 집합만 비교
        } catch (e) { return null; }
    }
    var a = colNames(infoA), b = colNames(infoB);
    if (!a || !b || a.length !== b.length) return false;
    var set = {};
    for (var i = 0; i < a.length; i++) set[a[i]] = true;
    for (var j = 0; j < b.length; j++) if (!set[b[j]]) return false;
    return true;
}

var saved = loadSavedLayout();   // 서버/스토리지에서 불러온, 이전에 저장한 정보 문자열
if (isSameColStructure(saved, sheet.getCurrentInfo())) {
    sheet.setCurrentInfo(saved);  // 컬럼 Name 목록 동일 → 안전하게 복원
} else {
    // 컬럼이 추가/삭제되었거나 이름이 바뀜 → 복원을 건너뛰거나 getCurrentInfo로 재저장
}

Read More

Since

product version desc
core 8.0.0.0 기능 추가