! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

rowOutlines로 Group된 Sheet의 Excel Export 오류 > Q&A | 토론

본문 바로가기

SpreadJS

Q&A | 토론

PureJS rowOutlines로 Group된 Sheet의 Excel Export 오류

페이지 정보

작성자 포레스트 작성일 2023-06-01 11:08 조회 313회 댓글 1건
제품 버전 : 14.2.3
컨트롤 이름 : excel IO

본문

안녕하세요.


spreadJS 14.2.3 버전을 사용중입니다.


행(row) Grouping기능을 통하여, Web화면에는 정상적으로 표시되지만,

Excel로 출력시,

그룹핑된 행들이 '행 숨기기'된 채로 export되고 있습니다.


행 숨겨지지 않은채로 Excel Export가 가능한 방법에 대해 문의드립니다.


구현코드는 아래와 같습니다.


setDataSource를 통해 바인드된 데이터(dsDetail)를,

그룹핑하기 위해서, 아래의 rowOutlinse의 function들을 사용하였습니다.

sheetDetail.rowOutlines.ungroup();
sheetDetail.rowOutlines.direction(GC.Spread.Sheets.Outlines.OutlineDirection.backward);
if (dsDetail.length > 2) {
    sheetDetail.rowOutlines.group(2, dsDetail.length - 2);
    for (var i = 1; i < dsDetail.length; i++) {
        if (dsDetail[i].DATA_TP_CD == 'M') {
            sheetDetail.rowOutlines.ungroupRange(i, 1);
            sheetDetail.rowOutlines.setCollapsed(i, true);
        }
    }
} else {
    sheetDetail.rowOutlines.group(0, 1);
}


위의 Spread를 엑셀출력을 위해, 아래와 같이 구현하였습니다.

	
var json = oSpread.toJSON({
    includeBindingSource: true,
});

var fileName = "test.xlsx";
var excelIo = new GC.Spread.Excel.IO();

excelIo.save(
    json,
    function (blob) {
        saveAs(blob, fileName);
    },
    function (e) {
        console.log(e);
    }
);


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

GCK루카스님의 댓글

GCK루카스 작성일

안녕하세요 그레이프시티입니다.

문의 주신 현상이 저희 편에서도 재현이 되어 본사 개발팀으로 확인 중입니다.
확인에 시간이 더 소요 될 것 같아 댓글로 먼저 안내 드리며, 확인 후 답변 드리도록 하겠습니다.

조금만 기다려 주시기 바랍니다.

감사합니다.
그레이프시티 드림

1 답변

PureJS Re: rowOutlines로 Group된 Sheet의 Excel Export 오류

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK루카스 작성일 2023-06-07 09:24 댓글 1건

본문

안녕하세요 그레이프시티입니다.


아래와 같이 코드를 수정하여 사용해 보시기 바랍니다.

function initSpread(spread) {
    var sheet = spread.getSheet(0);
    sheet.setDataSource(data);
    sheet.rowOutlines.direction(GC.Spread.Sheets.Outlines.OutlineDirection.backward);
    if (data.length > 2) {
        var groupStart = 2, groupLength = 0;
        for (var i = 1; i < data.length; i++) {
            if (data[i].name == 'ccc') {
                sheet.rowOutlines.group(groupStart, groupLength - 1);
                sheet.rowOutlines.setCollapsed(groupStart, true);
                groupStart = i + 1;
                groupLength = 1;
            } else {
                groupLength++;
            }
        }
        sheet.rowOutlines.group(groupStart, groupLength - 1);
        sheet.rowOutlines.setCollapsed(groupStart, true);
    } else {
        sheet.rowOutlines.group(0, 1);
    }
    spread.refresh();
};


[프리미엄 회원 전환 안내]
라이선스를 보유하고 계신다면, 누구나 추가 비용 없이 그레이프시티 포럼 프리미엄 회원이 될 수 있습니다.
프리미엄 회원으로 전환 시, 기술 문의에 대하여 우선 지원 받으실 수 있습니다.
아래 링크를 통해 프리미엄 회원 전환 방법 및 혜택 안내를 살펴보시길 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

포레스트님의 댓글

포레스트 작성일

가이드 주신대로 적용해보니, 정상적으로 엑셀출력이 되네요.
감사합니다!!

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.