積み上げスパークライン

積み上げスパークラインは、相互に、さらにカテゴリ間で値を比較したい場合に便利です。

数式にStackedSparkline関数を使用することで、積み上げスパークラインを作成できます。構文は次のとおりです。 =STACKEDSPARKLINE(points, colorRange?, labelRange?, maximum?, targetRed?, targetGreen?, targetBlue?, tragetYellow?, color?, highlightPosition?, vertical?, textOrientation?, textSize?) 有効なパラメータは次のとおりです。 points: 表示するすべての値を保持するセル範囲を表す参照。「A1:A4」など。 colorRange(オプション): すべての色を保持するセル範囲を表す参照。「B1:B4」など。デフォルト値はcolorによって生成されます。 labelRange(オプション): すべてのラベルを保持するセル範囲を表す参照。「C1:C4」など。デフォルトでは空白文字列です。 maximum(オプション): スパークラインの最大値を表す数値。デフォルト値は、すべての正の値の合計です。 targetRed(オプション): 赤線の位置を表す数値。デフォルトでは空白文字列です。 targetGreen(オプション): 緑色の線の位置を表す数値。デフォルトでは空白文字列です。 targetBlue(オプション): 青色の線の位置を表す数値。デフォルトでは空白文字列です。 targetYellow(オプション): 黄色の線の位置を表す数値。デフォルトでは空白文字列です。 color(オプション): colorRangeが省略されている場合の色を表す文字列。デフォルト値は「#646464」です。 highlightPosition(オプション): 強調表示領域のインデックスを表す数値。デフォルトでは空白文字列です。 vertical(オプション): スパークラインを垂直に表示するかどうかを表すブール値。デフォルト値はfalseです。 textOrientation(オプション): ラベルテキストの向きを表す数値。次のいずれかです。 0:(既定値)Horizontal 1: Vertical textSize(オプション): ラベルテキストのサイズを表す数値(ピクセル単位)。デフォルト値は「10」です。
var spreadNS = GC.Spread.Sheets; window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 }); initSpread(spread); }; function initSpread(spread) { spread.options.newTabVisible = false; initHorizontalSparkline(spread.sheets[0], "Horizontal"); initVerticalSparkline(spread.sheets[1], "Vertical"); }; function initHorizontalSparkline(sheet, name) { sheet.suspendPaint(); sheet.name(name); sheet.addSpan(0, 0, 1, 5); sheet.getCell(0, 0).value("Sales by State").font("20px Arial").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center); sheet.getRange(1, 0, 1, 5).foreColor("white").backColor("Accent 4").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center); sheet.setValue(1, 0, "State"); sheet.setValue(1, 1, "Product 1"); sheet.setValue(1, 2, "Product 2"); sheet.setValue(1, 3, "Product 3"); sheet.setValue(1, 4, "Diagram"); sheet.setValue(2, 0, "Idaho"); sheet.setValue(2, 1, 10000); sheet.setValue(2, 2, 12000); sheet.setValue(2, 3, 15000); sheet.setValue(3, 0, "Montana"); sheet.setValue(3, 1, 11000); sheet.setValue(3, 2, 10000); sheet.setValue(3, 3, 15000); sheet.setValue(4, 0, "Oregon"); sheet.setValue(4, 1, 10000); sheet.setValue(4, 2, 17000); sheet.setValue(4, 3, 12000); sheet.setValue(5, 0, "Washington"); sheet.setValue(5, 1, 15000); sheet.setValue(5, 2, 10000); sheet.setValue(5, 3, 15000); sheet.setValue(6, 0, "Utah"); sheet.setValue(6, 1, 10000); sheet.setValue(6, 2, 15000); sheet.setValue(6, 3, 12000); sheet.setValue(7, 1, "orange"); sheet.setValue(7, 2, "purple"); sheet.setValue(7, 3, "yellowgreen"); sheet.setFormatter(-1, 1, "$#,##0"); sheet.setFormatter(-1, 2, "$#,##0"); sheet.setFormatter(-1, 3, "$#,##0"); sheet.setFormula(2, 4, '=STACKEDSPARKLINE(B3:D3,$B$8:$D$8,$B$2:$D$2,40000)'); sheet.setFormula(3, 4, '=STACKEDSPARKLINE(B4:D4,$B$8:$D$8,$B$2:$D$2,40000)'); sheet.setFormula(4, 4, '=STACKEDSPARKLINE(B5:D5,$B$8:$D$8,$B$2:$D$2,40000)'); sheet.setFormula(5, 4, '=STACKEDSPARKLINE(B6:D6,$B$8:$D$8,$B$2:$D$2,40000)'); sheet.setFormula(6, 4, '=STACKEDSPARKLINE(B7:D7,$B$8:$D$8,$B$2:$D$2,40000)'); sheet.setRowHeight(0, 50); sheet.setRowHeight(1, 25); for (var i = 2; i < 7; i++) { sheet.setRowHeight(i, 45); } sheet.setRowHeight(7, 0); sheet.setColumnWidth(0, 100); sheet.setColumnWidth(1, 120); sheet.setColumnWidth(2, 120); sheet.setColumnWidth(3, 120); sheet.setColumnWidth(4, 200); sheet.resumePaint(); } function initVerticalSparkline(sheet, name) { sheet.suspendPaint(); sheet.name(name); sheet.addSpan(0, 0, 1, 6); sheet.getCell(0, 0).value("Sales by State").font("20px Arial").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center); sheet.getRange(1, 0, 1, 6).foreColor("white").backColor("Accent 4").hAlign(spreadNS.HorizontalAlign.center).vAlign(spreadNS.VerticalAlign.center); sheet.getRange(2, 0, 4, 6).vAlign(spreadNS.VerticalAlign.center); sheet.setFormatter(-1, 1, "$#,##0"); sheet.setFormatter(-1, 2, "$#,##0"); sheet.setFormatter(-1, 3, "$#,##0"); sheet.setFormatter(-1, 4, "$#,##0"); sheet.setFormatter(-1, 5, "$#,##0"); sheet.setColumnWidth(0, 120); sheet.setColumnWidth(1, 120); sheet.setColumnWidth(2, 120); sheet.setColumnWidth(3, 120); sheet.setColumnWidth(4, 120); sheet.setColumnWidth(5, 120); for (var i = 1; i < 5; i++) { sheet.setRowHeight(i, 45); } sheet.setRowHeight(5, 200); sheet.setColumnWidth(6, 0); sheet.setValue(2, 6, "orange"); sheet.setValue(3, 6, "purple"); sheet.setValue(4, 6, "yellowgreen"); sheet.setValue(1, 0, "state"); sheet.setValue(2, 0, "Product 1"); sheet.setValue(3, 0, "Product 2"); sheet.setValue(4, 0, "Product 3"); sheet.setValue(5, 0, "Diagram"); sheet.setValue(1, 1, "Idaho"); sheet.setValue(2, 1, 10000); sheet.setValue(3, 1, 12000); sheet.setValue(4, 1, 15000); sheet.setFormula(5, 1, '=STACKEDSPARKLINE(B$3:B$5,$G$3:$G$5,$A$3:$A$5,40000,,,,,,,TRUE)'); sheet.setValue(1, 2, "Montana"); sheet.setValue(2, 2, 11000); sheet.setValue(3, 2, 10000); sheet.setValue(4, 2, 15000); sheet.setFormula(5, 2, '=STACKEDSPARKLINE(C$3:C$5,$G$3:$G$5,$A$3:$A$5,40000,,,,,,,TRUE)'); sheet.setValue(1, 3, "Oregon"); sheet.setValue(2, 3, 10000); sheet.setValue(3, 3, 17000); sheet.setValue(4, 3, 12000); sheet.setFormula(5, 3, '=STACKEDSPARKLINE(D$3:D$5,$G$3:$G$5,$A$3:$A$5,40000,,,,,,,TRUE)'); sheet.setValue(1, 4, "Washington"); sheet.setValue(2, 4, 15000); sheet.setValue(3, 4, 10000); sheet.setValue(4, 4, 15000); sheet.setFormula(5, 4, '=STACKEDSPARKLINE(E$3:E$5,$G$3:$G$5,$A$3:$A$5,40000,,,,,,,TRUE)'); sheet.setValue(1, 5, "Utah"); sheet.setValue(2, 5, 10000); sheet.setValue(3, 5, 15000); sheet.setValue(4, 5, 12000); sheet.setFormula(5, 5, '=STACKEDSPARKLINE(F$3:F$5,$G$3:$G$5,$A$3:$A$5,40000,,,,,,,TRUE)'); sheet.resumePaint(); }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta name="spreadjs culture" content="ja-jp" /> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ja/purejs/node_modules/@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/ja/purejs/node_modules/@grapecity/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ja/purejs/node_modules/@grapecity/spread-sheets-resources-ja/dist/gc.spread.sheets.resources.ja.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div class="sample-tutorial"> <div id="ss" style="width:100%;height:100%"></div> </div> </body> </html>
.sample-tutorial { position: relative; height: 100%; overflow: hidden; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }