SpreadJS製品ヘルプ
addSparklineEx メソッド
GC.Spread.Sheets 名前空間 > Workbook タイプ : addSparklineEx メソッド
追加するSparklineEx。
SparklineExをSparklineExコレクションに追加します。
シンタックス
var instance = new GC.Spread.Sheets.Workbook(host,
                                            options,
                                            options.sheetCount,
                                            options.font,
                                            options.allowUserDragMerge,
                                            options.allowUserDragDrop,
                                            options.allowUserDragFill,
                                            options.allowUserZoom,
                                            options.allowUserResize,
                                            options.allowUndo,
                                            options.allowSheetReorder,
                                            options.allowContextMenu,
                                            options.allowUserDeselect,
                                            options.defaultDragFillType,
                                            options.showDragFillSmartTag,
                                            options.showHorizontalScrollbar,
                                            options.showVerticalScrollbar,
                                            options.scrollbarShowMax,
                                            options.scrollbarMaxAlign,
                                            options.tabStripVisible,
                                            options.tabStripRatio,
                                            options.tabEditable,
                                            options.newTabVisible,
                                            options.tabNavigationVisible,
                                            options.cutCopyIndicatorVisible,
                                            options.cutCopyIndicatorBorderColor,
                                            options.backColor,
                                            options.backgroundImage,
                                            options.backgroundImageLayout,
                                            options.grayAreaBackColor,
                                            options.showResizeTip,
                                            options.showDragDropTip,
                                            options.showDragFillTip,
                                            options.showScrollTip,
                                            options.scrollIgnoreHidden,
                                            options.highlightInvalidData,
                                            options.useTouchLayout,
                                            options.hideSelection,
                                            options.resizeZeroIndicator,
                                            options.allowUserEditFormula,
                                            options.enableFormulaTextbox,
                                            options.autoFitType,
                                            options.referenceStyle,
                                            options.calcOnDemand,
                                            options.allowCopyPasteExcelStyle,
                                            options.allowExtendPasteRange,
                                            options.copyPasteHeaderOptions,
                                            options.scrollByPixel,
                                            options.scrollPixel,
                                            options.enableAccessibility,
                                            options.allowAutoCreateHyperlink,
                                            options.columnResizeMode,
                                            options.rowResizeMode,
                                            options.customList,
                                            options.scrollbarAppearance,
                                            options.pasteSkipInvisibleRange);
var value; // Type: any
value = instance.addSparklineEx(sparklineEx);
function addSparklineEx( 
   sparklineEx : SparklineEx
) : any;

パラメータ

sparklineEx
追加するSparklineEx。
使用例
次のサンプルコードは、カスタムスパークラインを作成します。
function Clock() {
    GC.Spread.Sheets.Sparklines.SparklineEx.call(this);
}
Clock.prototype = new GC.Spread.Sheets.Sparklines.SparklineEx();
Clock.prototype.createFunction = function () {
    var func = new GC.Spread.CalcEngine.Functions.Function("CLOCK", 1, 1);
    func.evaluate = function (args) {
        return args[0];
    };
    return func;
};
Clock.prototype._drawCircle = function (context, centerX, centerY, radius) {
    context.beginPath();
    context.arc(centerX, centerY, radius, 0, Math.PI * 2, true);
    context.stroke();
};
Clock.prototype._drawCenter = function (context, centerX, centerY, radius) {
    context.beginPath();
    context.arc(centerX, centerY, radius, 0, Math.PI * 2, true);
    context.fill();
};
Clock.prototype._drawHand = function (context, centerX, centerY, loc, radius) {
    var angle = (Math.PI * 2) * (loc / 60) - Math.PI / 2;
    context.beginPath();
    context.moveTo(centerX, centerY);
    context.lineTo(centerX + Math.cos(angle) * radius, centerY + Math.sin(angle) * radius);
    context.stroke();
};
Clock.prototype._drawHands = function (context, value, centerX, centerY, radius) {
    var date = value, hour = date.getHours();
    hour = hour > 12 ? hour - 12 : hour;
    this._drawHand(context, centerX, centerY, hour * 5 + (date.getMinutes() / 60) * 5, radius / 2);
    this._drawHand(context, centerX, centerY, date.getMinutes(), radius * 3 / 4);
    context.strokeStyle = "red";
    this._drawHand(context, centerX, centerY, date.getSeconds(), radius * 3 / 4);

};
Clock.prototype._drawNumerals = function (context, centerX, centerY, radius) {
    var numerals = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
        angle,
        numeralWidth;
    if (radius > 0) {
        numerals.forEach(function (numeral) {
            angle = Math.PI / 6 * (numeral - 3);
            numeralWidth = context.measureText(numeral).width;
            context.beginPath();
            context.fillText(numeral, centerX + Math.cos(angle) * radius + numeralWidth / 2, centerY + Math.sin(angle) * radius + numeralWidth / 2);
        });
    }
};
Clock.prototype.paint = function (context, value, x, y, width, height) {
    if (!(value instanceof Date)) {
        return;
    }
    var centerX = x + width / 2,
        centerY = y + height / 2,
        margin = 10,
        padding = 10,
        radius = Math.min(width, height) / 2 - margin;
    if (radius <= 0) {
        return;
    }
    context.save();

    //draw circle
    this._drawCircle(context, centerX, centerY, radius);
    //draw center
    this._drawCenter(context, centerX, centerY, 3);
    //draw hands
    this._drawHands(context, value, centerX, centerY, radius);
    //draw numerals
    this._drawNumerals(context, centerX, centerY, radius - padding);

    context.restore();
};
spread.addSparklineEx(new Clock());

var sheet = spread.getActiveSheet();

var style = new GC.Spread.Sheets.Style();
style.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
style.vAlign = GC.Spread.Sheets.VerticalAlign.center;
sheet.setDefaultStyle(style);
sheet.getCell(0, 1, GC.Spread.Sheets.SheetArea.viewport).value("Universal Time").font("20px Arial");
sheet.setValue(1, 0, "Beijing");
sheet.setValue(1, 1, "Tokyo");
sheet.setValue(1, 2, "New York");
sheet.setFormula(2, 0, '=CLOCK(A4)');
sheet.setFormula(2, 1, '=CLOCK(B4)');
sheet.setFormula(2, 2, '=CLOCK(C4)');
sheet.getRange(3, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).formatter("hh:mm:ss tt");
sheet.setRowHeight(0, 50);
sheet.setRowHeight(2, 200);
sheet.setColumnWidth(0, 200);
sheet.setColumnWidth(1, 200);
sheet.setColumnWidth(2, 200);
function updateTime() {
    var now = new Date();
    var utcNow = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds());
    sheet.setValue(3, 0, new Date(utcNow.setHours(utcNow.getHours() + 8)));//+8
    sheet.setValue(3, 1, new Date(utcNow.setHours(utcNow.getHours() + 1)));//+9
    sheet.setValue(3, 2, new Date(utcNow.setHours(utcNow.getHours() - 14)));//-5
}
setInterval(updateTime, 1000);
updateTime();
関連トピック

参照

Workbook タイプ
スパークライン