# 글머리 기호 스파크라인

## Content

셀 값을 사용하여 `BULLETSPARKLINE` 수식을 통해 불릿 스파크라인을 생성할 수 있습니다.
![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/bullet-sparkline.png)

불릿 스파크라인 수식에는 다음과 같은 옵션이 있습니다:

| 옵션 | 설명 |
| --- | --- |
| **measure** | 측정 막대의 길이를 나타내는 숫자 또는 참조입니다. 예: `5` 또는 `"A1"` |
| **target** | 목표선의 위치를 나타내는 숫자 또는 참조입니다. 예: `7` 또는 `"A2"` |
| **maxi** | 스파크라인의 최대값을 나타내는 숫자 또는 참조입니다. 예: `10` 또는 `"A3"` |
| **good** | 양호 막대의 길이를 나타내는 숫자 또는 참조입니다. 예: `3` 또는 `"A4"` (선택 사항, 기본값: `0`) |
| **bad** | 불량 막대의 길이를 나타내는 숫자 또는 참조입니다. 예: `1` 또는 `"A5"` (선택 사항, 기본값: `0`) |
| **forecast** | 예측선의 길이를 나타내는 숫자 또는 참조입니다. 예: `8` 또는 `"A6"` (선택 사항, 기본값: `0`) |
| **tickunit** | 눈금 단위를 나타내는 숫자 또는 참조입니다. 예: `1` 또는 `"A7"` (선택 사항, 기본값: `0`) |
| **colorScheme** | 스파크라인 표시를 위한 색 구성표를 나타내는 문자열입니다. (선택 사항, 기본값: `"#A0A0A0"`) |
| **vertical** | 스파크라인을 세로로 표시할지 여부를 나타내는 불리언 값입니다. (선택 사항, 기본값: `false`) |
| **measureColor** | 측정 막대의 색상을 나타내는 색상 문자열입니다. |
| **targetColor** | 목표선의 색상을 나타내는 색상 문자열입니다. |
| **maxiColor** | 최대 영역의 색상을 나타내는 색상 문자열입니다. |
| **goodColor** | 양호 영역의 색상을 나타내는 색상 문자열입니다. |
| **badColor** | 불량 영역의 색상을 나타내는 색상 문자열입니다. |
| **forecastColor** | 예측선의 색상을 나타내는 색상 문자열입니다. |
| **allowMeasureOverMaxi** | 측정 값이 최대 영역을 초과할 수 있는지 여부를 나타내는 불리언 값입니다. (기본값: `false`) |
| **barSize** | 셀 너비 또는 높이에 대한 막대 너비 또는 높이의 비율을 나타내는 `0보다 크고 1 이하`의 숫자입니다. |

불릿 스파크라인 수식의 형식은 다음과 같습니다:
`=BULLETSPARKLINE (measure, target, maxi, good, bad, forecast, tickUnit, colorScheme, vertical, measureColor, targetColor, maxiColor, goodColor, badColor, forecastColor, allowMeasureOverMaxi, barSize)`

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

```javascript
// Spread 초기화
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
// activesheet 가져오기 
var activeSheet = spread.getSheet(0);
activeSheet.addSpan(0, 0, 1, 4);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).value("Employee KPI").font("20px Arial").hAlign(GC.Spread.Sheets.HorizontalAlign.center).vAlign(GC.Spread.Sheets.VerticalAlign.center);
var table1 = activeSheet.tables.add("table1", 1, 0, 7, 4, GC.Spread.Sheets.Tables.TableThemes.light12);
table1.filterButtonVisible(false);
activeSheet.setValue(1, 0, "Name");
activeSheet.setValue(1, 1, "Forecast");
activeSheet.setValue(1, 2, "Actuality");
activeSheet.setValue(1, 3, "Diagram");
activeSheet.setValue(2, 0, "Employee 1");
activeSheet.setValue(2, 1, 6);
activeSheet.setValue(2, 2, 6);
activeSheet.setValue(3, 0, "Employee 2");
activeSheet.setValue(3, 1, 8);
activeSheet.setValue(3, 2, 7);
activeSheet.setValue(4, 0, "Employee 3");
activeSheet.setValue(4, 1, 6);
activeSheet.setValue(4, 2, 4);
activeSheet.setValue(5, 0, "Employee 4");
activeSheet.setValue(5, 1, 7);
activeSheet.setValue(5, 2, 9);
activeSheet.setValue(6, 0, "Employee 5");
activeSheet.setValue(6, 1, 6);
activeSheet.setValue(6, 2, 8);
activeSheet.setValue(7, 0, "Employee 6");
activeSheet.setValue(7, 1, 8);
activeSheet.setValue(7, 2, 7);

activeSheet.setValue(8, 0, "Settings:");
activeSheet.setValue(9, 0, "target");
activeSheet.setValue(9, 1, 7);
activeSheet.setValue(10, 0, "maxi");
activeSheet.setValue(10, 1, 10);
activeSheet.setValue(11, 0, "good");
activeSheet.setValue(11, 1, 8);
activeSheet.setValue(12, 0, "bad");
activeSheet.setValue(12, 1, 5);
activeSheet.setValue(13, 0, "color scheme");
activeSheet.setValue(13, 1, "red");
activeSheet.setValue(14, 0, "measure color");
activeSheet.setValue(14, 1, "#FFC0CB");
activeSheet.setValue(15, 0, "target color");
activeSheet.setValue(15, 1, "#FF4500");
activeSheet.setValue(16, 0, "maxi color");
activeSheet.setValue(16, 1, "#00FFFF");
activeSheet.setValue(17, 0, "good color");
activeSheet.setValue(17, 1, "#7FFF00");
activeSheet.setValue(18, 0, "bad color");
activeSheet.setValue(18, 1, " #FF0000");
activeSheet.setValue(19, 0, "forecast color");
activeSheet.setValue(19, 1, "#000080");
activeSheet.setValue(20, 0, "allow measure over maxi");
activeSheet.setValue(20, 1, true);
activeSheet.setValue(21, 0, "bar size");
activeSheet.setValue(21, 1, 0.8);

for (var index = 2; index < 8; index++) {
    activeSheet.setFormula(index, 3, '=BULLETSPARKLINE($C' + (index + 1) + ',$B$10,$B$11,$B$12,$B$13,$B' + (index + 1)
        + ',1,$B$14,false,$B$15,$B$16,$B$17,$B$18,$B$19,$B$20,$B$21,$B$22)');
}

activeSheet.setRowHeight(0, 50);
for (var i = 1; i < 8; i++) {
    activeSheet.setRowHeight(i, 40);
}
activeSheet.setColumnWidth(0, 100);
activeSheet.setColumnWidth(1, 100);
activeSheet.setColumnWidth(2, 100);
activeSheet.setColumnWidth(3, 200);
```