누적형

누적된 스파크라인은 값을 서로 또는 범주 간에 비교하는 데 유용합니다.

설명
app.vue
index.html
styles.css

수식에서 다음과 같이 StackedSparkline 함수를 사용하여 누적형 스파크라인을 만들 수 있습니다. =STACKEDSPARKLINE(points, colorRange?, labelRange?, maximum?, targetRed?, targetGreen?, targetBlue?, tragetYellow?, color?, highlightPosition?, vertical?, textOrientation?, textSize?).

이 함수에는 다음과 같은 매개 변수가 있습니다.

points: 모든 값을 포함하는 셀 범위를 나타내는 참조입니다(예: "A1:A4").

colorRange\: (선택 사항) 모든 색을 포함하는 셀 범위를 나타내는 참조입니다(예: "B1:B4"). 기본값은 색으로 생성됩니다.

labelRange\: (선택 사항) 모든 레이블을 포함하는 셀 범위를 나타내는 참조입니다(예: "C1:C4"). 기본값은 빈 문자열입니다.

maximum\: (선택 사항) 스파크라인의 최대값을 나타내는 숫자입니다. 기본값은 모든 양수 값의 요약입니다.

targetRed\: (선택 사항) 빨간색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다.

targetGreen\: (선택 사항) 녹색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다.

targetBlue\: (선택 사항) 파란색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다.

targetYellow\: (선택 사항) 노란색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다.

color\: (선택 사항) colorRange가 생략된 경우 색을 생성하기 위한 색을 나타내는 문자열입니다. 기본값은 "#646464"입니다.

highlightPosition\: (선택 사항) 하이라이트 영역의 인덱스를 나타내는 숫자입니다. 기본값은 빈 문자열입니다.

vertical\: (선택 사항) 스파크라인을 세로로 표시할지 여부를 나타내는 부울입니다. 기본값은 false입니다.

textOrientation\: (선택 사항) 레이블 텍스트의 방향을 나타내는 숫자입니다. 다음 중 하나입니다.

  • 0: (기본값) 가로
  • 1: 세로

textSize\: (선택 사항) 레이블 텍스트의 크기(픽셀 단위)를 나타내는 숫자입니다. 기본값은 10입니다.

수식에서 다음과 같이 StackedSparkline 함수를 사용하여 누적형 스파크라인을 만들 수 있습니다. =STACKEDSPARKLINE(points, colorRange?, labelRange?, maximum?, targetRed?, targetGreen?, targetBlue?, tragetYellow?, color?, highlightPosition?, vertical?, textOrientation?, textSize?). 이 함수에는 다음과 같은 매개 변수가 있습니다. points: 모든 값을 포함하는 셀 범위를 나타내는 참조입니다(예: "A1:A4"). colorRange\: (선택 사항) 모든 색을 포함하는 셀 범위를 나타내는 참조입니다(예: "B1:B4"). 기본값은 색으로 생성됩니다. labelRange\: (선택 사항) 모든 레이블을 포함하는 셀 범위를 나타내는 참조입니다(예: "C1:C4"). 기본값은 빈 문자열입니다. maximum\: (선택 사항) 스파크라인의 최대값을 나타내는 숫자입니다. 기본값은 모든 양수 값의 요약입니다. targetRed\: (선택 사항) 빨간색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다. targetGreen\: (선택 사항) 녹색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다. targetBlue\: (선택 사항) 파란색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다. targetYellow\: (선택 사항) 노란색 선의 위치를 나타내는 숫자입니다. 기본값은 빈 문자열입니다. color\: (선택 사항) colorRange가 생략된 경우 색을 생성하기 위한 색을 나타내는 문자열입니다. 기본값은 "#646464"입니다. highlightPosition\: (선택 사항) 하이라이트 영역의 인덱스를 나타내는 숫자입니다. 기본값은 빈 문자열입니다. vertical\: (선택 사항) 스파크라인을 세로로 표시할지 여부를 나타내는 부울입니다. 기본값은 false입니다. textOrientation\: (선택 사항) 레이블 텍스트의 방향을 나타내는 숫자입니다. 다음 중 하나입니다. 0: (기본값) 가로 1: 세로 textSize\: (선택 사항) 레이블 텍스트의 크기(픽셀 단위)를 나타내는 숫자입니다. 기본값은 10입니다.
<template> <div class="sample-tutorial"> <gc-spread-sheets class="sample-spreadsheets" @workbookInitialized="initSpread" :newTabVisible = false> <gc-worksheet></gc-worksheet> <gc-worksheet> </gc-worksheet> </gc-spread-sheets> </div> </template> <script> import Vue from "vue"; import GC from '@mescius/spread-sheets'; import '@mescius/spread-sheets-resources-ko'; import '@mescius/spread-sheets-vue' GC.Spread.Common.CultureManager.culture("ko-kr"); import './styles.css'; let App = Vue.extend({ name: "app", data: function() { return { spread: null }; }, methods:{ initHorizontalSparkline(sheet, name) { sheet.suspendPaint(); sheet.name(name); sheet.addSpan(0, 0, 1, 7); sheet.getCell(0, 0).value("Quarterly Sales by Regions 2020").font("20px Arial").vAlign(GC.Spread.Sheets.VerticalAlign.center); for (var i = 0; i < 7; i++) { sheet.getCell(1,i).backColor("#E3E3E3"); sheet.setColumnWidth(i, 90); sheet.setFormatter(-1, i, "$#,##0"); } sheet.setArray(1, 0, [ ["Quarter", "Color Range","East", "West", "North","South","Diagram"], ["Q1","#82BC00", 42000,45000,26000,38000], ["Q2","#AED069", 52000,35000,45000,20000], ["Q3","#D4E3AF", 25000,34000,55000,19000], ["Q4","#F4F8EB", 50000,25000,60000,20000]]); sheet.setFormula(2, 6, '=STACKEDSPARKLINE(C3:F3,$B$3:$B$6,$C$2:$F$2,170000)'); sheet.setFormula(3, 6, '=STACKEDSPARKLINE(C4:F4,$B$3:$B$6,$C$2:$F$2,170000)'); sheet.setFormula(4, 6, '=STACKEDSPARKLINE(C5:F5,$B$3:$B$6,$C$2:$F$2,170000)'); sheet.setFormula(5, 6, '=STACKEDSPARKLINE(C6:F6,$B$3:$B$6,$C$2:$F$2,170000)'); sheet.setFormula(6, 6, '=STACKEDSPARKLINE(C7:F7,$B$3:$B$6,$C$2:$F$2,170000)'); sheet.setRowHeight(0, 30); sheet.setRowHeight(1, 25); for (var i = 2; i < 6; i++) { sheet.setRowHeight(i, 30); } sheet.setColumnWidth(6, 250); //hide Color Range column sheet.setColumnWidth(1, 0); sheet.resumePaint(); }, initVerticalSparkline(sheet, name) { sheet.suspendPaint(); sheet.name(name); sheet.addSpan(0, 0, 1, 5); sheet.getCell(0, 0).value("Quarterly Sales by Regions 2020").font("20px Arial").vAlign(GC.Spread.Sheets.VerticalAlign.center); for (var i = 0; i < 5; i++) { sheet.getCell(1,i).backColor("#E3E3E3"); sheet.setColumnWidth(i, 90); sheet.setFormatter(-1, i, "$#,##0"); } sheet.setArray(1, 0, [ ["Quarter", "Q1", "Q2", "Q3","Q4"], ["Color Range", "#82BC00","#AED069","#D4E3AF","#F4F8EB"], ["East",42000,52000,25000,50000], ["West",45000,35000,34000,25000], ["North",26000,45000,55000,60000], ["South",38000,20000,19000,20000]]); sheet.setFormula(7, 1, '=STACKEDSPARKLINE(B$4:B$7,$B$3:$E$3,$A$4:$A$7,170000,,,,,,,TRUE)'); sheet.setFormula(7, 2, '=STACKEDSPARKLINE(C$4:C$7,$B$3:$E$3,$A$4:$A$7,170000,,,,,,,TRUE)'); sheet.setFormula(7, 3, '=STACKEDSPARKLINE(D$4:D$7,$B$3:$E$3,$A$4:$A$7,170000,,,,,,,TRUE)'); sheet.setFormula(7, 4, '=STACKEDSPARKLINE(E$4:E$7,$B$3:$E$3,$A$4:$A$7,170000,,,,,,,TRUE)'); sheet.setFormula(7, 5, '=STACKEDSPARKLINE(F$4:F$7,$B$3:$E$3,$A$4:$A$7,170000,,,,,,,TRUE)'); for (var i = 0; i < 7; i++) { sheet.setRowHeight(i, 30); } sheet.setRowHeight(2, 0); sheet.setRowHeight(7, 180); sheet.resumePaint(); }, initSpread(spread) { this.spread = spread; this.initHorizontalSparkline(spread.sheets[0], "Horizontal"); this.initVerticalSparkline(spread.sheets[1], "Vertical"); } } }); new Vue({ render: h => h(App) }).$mount('#app'); </script>
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/vue/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <!-- SystemJS --> <script src="$DEMOROOT$/ko/vue/node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> System.import('./src/app.vue'); System.import('$DEMOROOT$/ko/lib/vue/license.js'); </script> </head> <body> <div id="app" style="height: 100%;"></div> </body> </html>
.sample-tutorial { position: relative; height: 100%; overflow: hidden; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; } .sample-spreadsheets { height: 100%; }
(function (global) { System.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, meta: { '*.css': { loader: 'css' }, '*.vue': { loader: 'vue-loader' } }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, // map tells the System loader where to look for things map: { '@mescius/spread-sheets': 'npm:@mescius/spread-sheets/index.js', '@mescius/spread-sheets-resources-ko': 'npm:@mescius/spread-sheets-resources-ko/index.js', '@mescius/spread-sheets-vue': 'npm:@mescius/spread-sheets-vue/index.js', '@grapecity/jsob-test-dependency-package/react-components': 'npm:@grapecity/jsob-test-dependency-package/react-components/index.js', 'jszip': 'npm:jszip/dist/jszip.js', 'css': 'npm:systemjs-plugin-css/css.js', 'vue': 'npm:vue/dist/vue.min.js', 'vue-loader': 'npm:systemjs-vue-browser/index.js', 'tiny-emitter': 'npm:tiny-emitter/index.js', 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', 'systemjs-babel-build':'npm:systemjs-plugin-babel/systemjs-babel-browser.js' }, // packages tells the System loader how to load when no filename and/or no extension packages: { src: { defaultExtension: 'js' }, rxjs: { defaultExtension: 'js' }, "node_modules": { defaultExtension: 'js' } } }); })(this);