Pattern Fill

The Pattern Fill is a richer display effect for chart element background color. We provide 48 built-in pattern fill types.

For more rich chart customization, you can set normal CSS colors or pattern fills for chart element background colors. You can set the pattern fill for the below chart elements: title series data Label legend chartArea Customize: There are three properties for pattern fill: type: Specify the pattern fill type, refer GC.Spread.Sheets.Charts.PatternType foregroundColor: Specify the pattern fill color of lines or dots. backgroundColor: Specify the pattern fill background color. You can customize the pattern fill using the following code:
<template> <div class="sample-tutorial"> <gc-spread-sheets class="sample-spreadsheets" @workbookInitialized="initSpread"> <gc-worksheet /> <gc-worksheet /> <gc-worksheet /> </gc-spread-sheets> </div> </template> <script setup> import '@mescius/spread-sheets-vue'; import GC from '@mescius/spread-sheets'; import '@mescius/spread-sheets-shapes'; import '@mescius/spread-sheets-charts'; function initSpread(spread) { spread.setSheetCount(2); let sheet = spread.getActiveSheet(); sheet.suspendPaint(); let dataArray1 = [ ["", '2012', '2013', '2014', '2015', '2016', '2017'], ["Chrome", 5.782, 6.263, 7.766, 8.389, 9.830, 11.260], ["FireFox", 4.284, 4.130, 3.951, 3.760, 3.631, 3.504], ["IE", 2.814, 2.491, 2.455, 1.652, 1.073, 0.834], ]; let dataArray2 = [ ['Region', 'Subregion', 'country', 'Population'], ['Asia', 'Southern', 'India', 1354051854], [, , 'Pakistan', 200813818], [, , 'Bangladesh', 166368149], [, , 'Others', 170220300], [, 'Eastern', 'China', 1415045928], [, , 'Japan', 127185332], [, , 'Others', 111652273], [, 'South-Eastern', , 655636576], [, 'Western', , 272298399], [, 'Central', , 71860465], ['Africa', 'Eastern', , 433643132], [, 'Western', , 381980688], [, 'Northern', , 237784677], [, 'Others', , 234512021], ['Europe', , , 742648010], ['Others', , , 1057117703] ]; sheet.setArray(0, 0, dataArray1); sheet.setArray(0, 8, dataArray2); let columnChart = sheet.charts.add('columnChart', GC.Spread.Sheets.Charts.ChartType.columnClustered, 2, 85, 400, 350, 'A1:G4'); let treemapChart = sheet.charts.add('treemapChart', GC.Spread.Sheets.Charts.ChartType.treemap, 450, 85, 400, 350, 'I1:L17'); let chartArea = columnChart.chartArea(); chartArea.backColor = { type: GC.Spread.Sheets.Charts.PatternType.dottedPercent20, foregroundColor: "rgb(0,176,80)", backgroundColor: "background 1 0", }; columnChart.chartArea(chartArea); let seriesCollection = columnChart.series(); let series0 = seriesCollection.get(0); series0.backColor = { type: GC.Spread.Sheets.Charts.PatternType.darkVertical, foregroundColor: "blue", backgroundColor: "white", }; seriesCollection.set(0, series0); let series1 = seriesCollection.get(1); series1.backColor = { type: GC.Spread.Sheets.Charts.PatternType.smallGrid, foregroundColor: "green", backgroundColor: "white", }; seriesCollection.set(1, series1); let series2 = seriesCollection.get(2); series2.backColor = { type: GC.Spread.Sheets.Charts.PatternType.solidDiamond, foregroundColor: "orange", backgroundColor: "white", }; seriesCollection.set(2, series2) let dataPoints = treemapChart.series().dataPoints(); let fillColors = [{ type: GC.Spread.Sheets.Charts.PatternType.darkUpwardDiagonal, foregroundColor: "LightGreen", backgroundColor: "white", }, { type: GC.Spread.Sheets.Charts.PatternType.largeCheckerBoard, foregroundColor: "yellow", backgroundColor: "white", }, { type: GC.Spread.Sheets.Charts.PatternType.lightUpwardDiagonal, foregroundColor: "purple", backgroundColor: "white", }, { type: GC.Spread.Sheets.Charts.PatternType.dottedPercent40, foregroundColor: "LightBlue", backgroundColor: "white", } ]; for (let i = 0; i < fillColors.length; i++) { let dataPoint = dataPoints.get(i); dataPoint.fillColor = fillColors[i]; dataPoints.set(i, dataPoint); } let dataLabels = treemapChart.dataLabels(); dataLabels.color = 'black'; treemapChart.dataLabels(dataLabels); sheet.resumePaint(); } </script> <style scoped> .sample-tutorial { position: relative; height: 100%; overflow: hidden; } .sample-spreadsheets { width: 100%; height: 100%; overflow: hidden; float: left; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; } #app { height: 100%; } </style>
<!DOCTYPE html> <html style="height:100%;font-size:14px;"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>SpreadJS VUE</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/en/vue3/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/en/vue3/node_modules/systemjs/dist/system.src.js"></script> <script src="./systemjs.config.js"></script> <script src="./compiler.js" type="module"></script> <script> var System = SystemJS; System.import("./src/app.js"); System.import('$DEMOROOT$/en/lib/vue3/license.js'); </script> </head> <body> <div id="app"></div> </body> </html>
(function (global) { SystemJS.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, packageConfigPaths: [ './node_modules/*/package.json', "./node_modules/@mescius/*/package.json", "./node_modules/@babel/*/package.json", "./node_modules/@vue/*/package.json" ], map: { 'vue': "npm:vue/dist/vue.esm-browser.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", '@mescius/spread-sheets': 'npm:@mescius/spread-sheets/index.js', '@mescius/spread-sheets-resources-en': 'npm:@mescius/spread-sheets-resources-en/index.js', '@mescius/spread-sheets-vue': 'npm:@mescius/spread-sheets-vue/index.js', '@mescius/spread-sheets-shapes': 'npm:@mescius/spread-sheets-shapes/index.js', '@mescius/spread-sheets-charts': 'npm:@mescius/spread-sheets-charts/index.js', }, meta: { '*.css': { loader: 'systemjs-plugin-css' }, '*.vue': { loader: "../plugin-vue/index.js" } } }); })(this);