# ColLeft 대체 (getColLeft7 커스텀 함수)

IBSheet7의 `ColLeft`(열의 왼쪽 끝 절대 위치 px)에 직접 대응하는 IBSheet8 함수는 없습니다.
IBSheet8의 getColLeft (method)은 틀고정 섹션(왼쪽/가운데/우측) 기준 상대 위치를 반환하므로, 앞쪽 섹션 너비(getBodyWidth (method))를 더해 절대 위치를 구하는 헬퍼를 아래처럼 정의해 사용합니다.

    // 열 index를 열 이름으로 변환 (SEQ 자동 생성 컬럼 보정 포함)
    sheet.getColByIndex7 = function(colIndex) {
      if (colIndex === "" || colIndex === null || colIndex === undefined) return '';
      var seqAdj = (this.Cols["SEQ"] && this.Cols["SEQ"].VPos === -1) ? 1 : 0;
      if (typeof colIndex == "string") {
        if (colIndex.indexOf("|") != -1) {
          return colIndex.split("|").map(c => this.getColByIndex7(c));
        }
        if (!isNaN(colIndex)) return this.getColByIndex(parseInt(colIndex) + seqAdj, 1);
        return colIndex; // 이미 열 이름인 경우
      } else if (typeof colIndex == "number") {
        return this.getColByIndex(colIndex + seqAdj, 1); // getColByIndex: 1부터, 숨김 포함, 좌측(틀고정)부터
      }
    };

    // ColLeft 대체 — 열의 왼쪽 끝 절대 위치(px)
    sheet.getColLeft7 = function(colIndex) {
      const colName = sheet.getColByIndex7(colIndex);
      const section = sheet.Cols[colName].Section;   // 0:왼쪽 1:가운데 2:우측 틀고정
      let iLeft = sheet.getColLeft(colName);          // 섹션 기준 상대 위치
      // getBodyWidth: 0=왼쪽, 1=가운데 섹션 너비
      switch (section) {
        case 1: iLeft += sheet.getBodyWidth(0); break;                          // 가운데: 왼쪽 너비 추가
        case 2: iLeft += sheet.getBodyWidth(0) + sheet.getBodyWidth(1); break;  // 우측: 왼쪽 + 가운데 너비 추가
      }
      return iLeft;
    };

    // 사용 예: 5번 열의 왼쪽 끝 절대 위치
    var left = sheet.getColLeft7(5);