[]
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>