[]
        
(Showing Draft Content)

범위블록 스파크라인

SpreadJS에서는 Rangeblock 스파크라인을 생성할 수 있습니다. 이 스파크라인 함수는 range template을 바인딩하고 반환합니다.

구문

다음 구문을 사용하여 rangeblock 스파크라인 함수를 작성합니다:

RANGEBLOCKSPARKLINE(template_range, data_expression)


이 함수는 다음과 같은 인수를 가집니다:

인수

설명

template_range

range template에 대한 범위 참조를 지정합니다.

data_expression

range template에 바인딩할 객체 데이터를 지정합니다. 셀 참조를 사용할 수 있으며, 해당 셀 값은 객체이거나 객체 함수의 결과여야 합니다. OBJECT 함수를 사용하여 객체를 정의할 수 있습니다.

사용자는 formatstring 함수를 사용하여 셀에서 객체를 바인딩할 수 있다는 점도 참고할 수 있습니다.

RANGEBLOCKSPARKLINE(template-range, @)


사용 사례

아래 통합 문서 스냅샷은 RenderSheet가 TemplateSheet의 셀 범위를 템플릿으로 사용하고, 데이터 시트의 데이터를 OBJECT 함수로 객체화하여 Rangeblock 스파크라인을 생성하는 방식을 보여줍니다.



다음 코드 샘플은 Rangeblock 스파크라인을 생성하는 예시입니다.

Ask ChatGPT

<script>
    $(document).ready(function () {
        // Spread 초기화
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 4 });
        // activesheet 가져오기
        var activeSheet = spread.getActiveSheet();
        // DynamicArray 활성화
        spread.options.allowDynamicArray = true;
        var renderSheet = spread.getSheet(0);
        var templateSheet = spread.getSheet(1);
        var dataSheet = spread.getSheet(2);
        spread.suspendPaint();
        initTemplateSheet(templateSheet);
        initDataSheet(dataSheet);
        initRenderSheet(renderSheet);
        spread.resumePaint();
    });
    function ImageCellType() {
        this.typeName = "ImageCellType";
    }
    ImageCellType.prototype = new GC.Spread.Sheets.CellTypes.Base();
    ImageCellType.prototype.paint = function (ctx, value, x, y, w, h, style, context) {
        style.backgroundImage = value;
        style.backgroundImageLayout = GC.Spread.Sheets.ImageLayout.center;
        GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, '', x, y, w, h, style, context]);
    }
    function initRenderSheet(renderSheet) {
        renderSheet.name("RenderSheet");
        renderSheet.setColumnCount(8);
        renderSheet.setRowCount(1);
        renderSheet.setRowHeight(0, 400);
        for (var i = 0; i < 8; i++) {
            renderSheet.setColumnWidth(i, 400);
            renderSheet.setFormula(0, i, 'RANGEBLOCKSPARKLINE(TemplateSheet!A2:F11, OBJECT(tblPlayers[#Headers], INDEX(tblPlayers[#Data],COLUMN(),SEQUENCE(COUNTA(tblPlayers[#Headers]),1))))');
        }
    }
    function initTemplateSheet(templateSheet) {
        templateSheet.fromJSON(templateJson);
        templateSheet.name("TemplateSheet");
        var imageCellType = new ImageCellType();
        templateSheet.getCell(2, 1).cellType(imageCellType);
    }
    function initDataSheet(dataSheet) {
        dataSheet.fromJSON(dataJson);
    }
</script>