[]
SpreadJS는 Gauge KPI 스파크라인을 제공하며, KPI 값에 대한 성과를 시각화하는 데 사용할 수 있습니다.
이 스파크라인은 경영 성과의 효율성을 나타내거나 판매 목표 등을 제시하는 데 사용할 수 있습니다.
Gauge KPI 스파크라인은 다음 값을 사용하여 지표를 표시합니다:
Target Value: 예상 값을 나타내며, 하단에 표시됩니다.
Current Value: 현재 값을 나타냅니다.
Minimum Value: 예상되는 가장 작은 값입니다. target value 및 current value보다 작아야 합니다.
Maximum Value: 예상되는 가장 큰 값입니다. target value 및 current value보다 커야 합니다.
SpreadJS는 Circle, Vertical, Horizontal의 세 가지 유형의 Gauge KPI 스파크라인을 제공합니다.
GaugeKPISparkline
함수에서 gaugeType
옵션을 통해 설정할 수 있습니다.
Gauge KPI 스파크라인 수식의 인수
인수 | 타입 | 설명 |
---|---|---|
targetValue | 필수 / 숫자 | Gauge KPI 스파크라인의 목표값입니다. |
currentValue | 필수 / 숫자 | Gauge KPI 스파크라인의 현재값입니다. |
minValue | 필수 / 숫자 | 최소값입니다. |
maxValue | 필수 / 숫자 | 최대값입니다. |
showLabel | 선택 / 불리언 | 모든 값에 대한 레이블을 표시할지 여부를 지정합니다.
기본값은 |
targetValueLabel | 선택 / 문자열 | target value에 대한 레이블로 표시할 문자열입니다. 기본값은 |
currentValueLabel | 선택 / 문자열 | current value에 대한 레이블로 표시할 문자열입니다. 기본값은 |
minValueLabel | 선택 / 문자열 | min value에 대한 레이블로 표시할 문자열입니다. 기본값은 |
maxValueLabel | 선택 / 문자열 | max value에 대한 레이블로 표시할 문자열입니다. 기본값은 |
fontArray | 선택 / CalcArray | 네 가지 레이블 유형에 대한 폰트 서식을 포함하는 문자열 배열입니다: - Target value label: 기본값 - Current value label: 기본값 - Min/Max value labels: 기본값
|
minAngle | 선택 / 숫자 | 원형 타입의 최소 각도 값입니다. 각도는 시계 시간에 대응되며, 기본값은
|
maxAngle | 선택 / 숫자 | 원형 타입의 최대 각도 값입니다. 기본값은
|
radiusRatio | 선택 / 숫자 | 내원 반지름과 외원 반지름의 비율입니다. 외원 반지름은 셀 크기에 따라 결정됩니다. 값의 범위는
|
gaugeType | 선택 / 숫자 | KPI 스파크라인의 유형을 지정합니다: 0 - Circle 1 - Vertical Bar 2 - Horizontal Bar 기본값은 Circle입니다. |
colorRange | 선택 / 반복 가능한 CalcArray | 지정된 값 사이의 색상 범위입니다. 형식:
기본 색상 범위는 |
Gauge KPI 스파크라인 수식의 구문은 다음과 같습니다:
=GAUGEKPISPARKLINE (targetValue, currentValue, minValue, maxValue,showLabel?,targetValueLabel?,currentValueLabel?,minValueLabel?,maxValueLabel?, fontArray?, minAngle?, maxAngle?, radiusRatio?, gaugeType?, colorRange?)
Gauge KPI 스파크라인은 회사의 연간 매출 실적을 모니터링하는 데 사용됩니다.
수익(Revenue), 이익(Profit), 판매(Sales)와 같은 지표를 목표값과 실제값에 따라 측정함으로써 데이터를 쉽게 시각화하고, 의미 있는 결론을 도출하는 데 도움을 줍니다.
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 2 });
// 시트 가져오기
var sheet1 = spread.sheets[0];
var sheet2 = spread.sheets[1];
// 그리드라인 숨김
sheet1.options.gridline = { showVerticalGridline: false, showHorizontalGridline: false };
// 열/행 헤더 숨김
sheet1.options.colHeaderVisible = false;
sheet1.options.rowHeaderVisible = false;
// 열 너비 설정
for (var i = 0; i < 3; i++)
sheet1.setColumnWidth(i, 340);
for (var i = 0; i < 4; i++)
sheet2.setColumnWidth(i, 70);
for (var i = 0; i < 5; i++)
sheet2.setColumnWidth(i, 170);
// 행 높이 설정
sheet1.setRowHeight(0, 35, GC.Spread.Sheets.SheetArea.dataArea);
sheet1.setRowHeight(1, 280, GC.Spread.Sheets.SheetArea.dataArea);
// 데이터 설정
sheet1.setValue(0, 0, "Sales($'000) Dashboard FY 2019-20", GC.Spread.Sheets.SheetArea.dataArea);
var dataArray1 =
[
["Parameters", "Target", "Current", "Min", "Max"],
["Revenue", 900, 1200, 0, 2000],
["Profit", 1200, 1100, 0, 2000],
["Sales", 1600, 1800, 0, 2000]
];
sheet2.setArray(0, 0, dataArray1);
// GaugeKPISparkline 수식 설정
sheet1.setFormula(1, 0, '=GAUGEKPISPARKLINE(Sheet2!B2,Sheet2!C2,Sheet2!D2,Sheet2!E2,TRUE,TEXT(Sheet2!B3/1000,"$0.0K"),Sheet2!A2,TEXT(Sheet2!D2/1000,"$0.0K"),TEXT(Sheet2!E2/1000,"$0.0K"),{"normal normal 11pt Calibri","normal bold 16pt Calibri","normal normal 9pt Calibri","normal normal 9pt Calibri"},-90,90,0.4,0,{0,1200,"#FFB2BD"},{1200,1500,"#FFDFB0"},{1500,2000,"#BCEAB4"})');
sheet1.setFormula(1, 1, '=GAUGEKPISPARKLINE(Sheet2!B3,Sheet2!C3,Sheet2!D3,Sheet2!E3,TRUE,TEXT(Sheet2!B3/1000,"$0.0K"),Sheet2!A3,TEXT(Sheet2!D3/1000,"$0.0K"),TEXT(Sheet2!E3/1000,"$0.0K"),{"normal normal 11pt Calibri","normal bold 16pt Calibri","normal normal 9pt Calibri","normal normal 9pt Calibri"},-90,90,0.4,0,{0,1200,"#FFB2BD"},{1200,1500,"#FFDFB0"},{1500,2000,"#BCEAB4"})');
sheet1.setFormula(1, 2, '=GAUGEKPISPARKLINE(Sheet2!B4,Sheet2!C4,Sheet2!D4,Sheet2!E4,TRUE,TEXT(Sheet2!B4/1000,"$0.0K"),Sheet2!A4,TEXT(Sheet2!D4/1000,"$0.0K"),TEXT(Sheet2!E4/1000,"$0.0K"),{"normal normal 11pt Calibri","normal bold 16pt Calibri","normal normal 9pt Calibri","normal normal 9pt Calibri"},-90,90,0.6,0,{0,1200,"#FFB2BD"},{1200,1500,"#FFDFB0"},{1500,2000,"#BCEAB4"})');
sheet1.addSpan(0, 0, 1, 3, GC.Spread.Sheets.SheetArea.dataArea);
// 행0 스타일
style1 = new GC.Spread.Sheets.Style();
style1.font = "bold 28px Calibri";
style1.foreColor = "white";
style1.backColor = "#14928F";
style1.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
sheet1.setStyle(0, 0, style1, GC.Spread.Sheets.SheetArea.dataArea);
// 행1 스타일
var style = new GC.Spread.Sheets.Style();
style.backColor = "#B4E7E2";
for (var i = 0; i < 3; i++) {
sheet1.setStyle(1, i, style, GC.Spread.Sheets.SheetArea.dataArea);
}