'ibsheet'에 해당되는 글 1건

  1. 2019.11.27 숫자 콤마 Script 처리(with...IBSheet )
posted by 지긋이 2019. 11. 27. 10:24

업체로부터 요청사항이 이렇게 들어왔다.

최초 로딩시 Cell값은 빈칸으로 로딩되고 합계값만 표기해 주세요.
단, 해당 값은 기존에 있던 값과 같이 합계가 나와야합니다.

해당 Cell은 IBSheet를 사용하여 AutoSum을 구하고 있었는데 기존 값은 값대로 처리가 되어야 했으므로
기존값은 숨김처리하고 Temp Cell을 이용하여 처리해야 하는데 상단 Row값을 공백 처리하면 합계값도 0이 되는 상황 
IBSheet의 Type을 Int로 적용했는데 숫자의 콤마처리가 되지 않았다.

그래서 여러가지를 생각해봤는데
1. 쿼리에서 Text로 콤마를 붙여서 갖고 오는 방법(SUM을 구한후 포맷처리해야해서 쿼리를 좀 뜯어고쳐야...)
2. IBSheet 상 다른 콤마 처리를 찾아 보는 것
- IBSheet상 Type과 Format 처리는 바꿔도 동일. 간단할거 같았지만(?) 더 찾아보려면 많은 시간이 소요될 것 같았다...

그래서 생각한 가장 효과적인 방법은 기존 값의 AutoSum 합계값은 갖고 오고 스크립트로 콤마처리

예시) 보이는 1차값(Mon01Temp)은 Mon01 합계만 set한다.     
//쿼리에서는 mon01Temp 값을 세팅하지 않는다.
    var mon01SumSet = sheet1.GetCellValue(sheet1.LastRow(), "mon01");
    sheet1.SetCellValue(sheet1.LastRow(), "mon01Temp",addComma(mon01SumSet));

function addComma(num) {
  var regexp = /\B(?=(\d{3})+(?!\d))/g; //정규식
  return num.toString().replace(regexp, ',');
}

참고 https://webisfree.com/2016-08-29/[%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8]-%EC%88%AB%EC%9E%90-%ED%83%80%EC%9E%85%EA%B0%92%EC%97%90-%EC%BD%A4%EB%A7%88-%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95