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:
import * as React from 'react'; import { createRoot } from 'react-dom/client'; import './styles.css'; import { AppFunc } from './app-func'; // import { App } from './app-class'; // 1. Functional Component sample createRoot(document.getElementById('app')).render(<AppFunc />); // 2. Class Component sample // createRoot(document.getElementById('app')).render(<App />);
import * as React from 'react'; import GC from '@mescius/spread-sheets'; import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react'; import '@mescius/spread-sheets-shapes'; import '@mescius/spread-sheets-charts'; export function AppFunc() { const 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(); } return (<div class="sample-tutorial"> <div class="sample-spreadsheets"> <SpreadSheets workbookInitialized={spread => initSpread(spread)}> <Worksheet /> </SpreadSheets> </div> </div>); }
import * as React from 'react'; import GC from '@mescius/spread-sheets'; import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react'; import '@mescius/spread-sheets-shapes'; import '@mescius/spread-sheets-charts'; const Component = React.Component; export class App extends Component { constructor(props) { super(props); } render() { return (<div class="sample-tutorial"> <div class="sample-spreadsheets"> <SpreadSheets workbookInitialized={spread => this.initSpread(spread)}> <Worksheet /> </SpreadSheets> </div> </div>); } 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(); } }
<!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$/en/react/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <!-- SystemJS --> <script src="$DEMOROOT$/en/react/node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> System.import('$DEMOROOT$/en/lib/react/license.js').then(function () { System.import('./src/app'); }); </script> </head> <body> <div id="app"></div> </body> </html>
.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%; }
(function (global) { System.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true, react: true }, meta: { '*.css': { loader: 'css' } }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, // map tells the System loader where to look for things map: { '@mescius/spread-sheets-shapes': 'npm:@mescius/spread-sheets-shapes/index.js', '@mescius/spread-sheets-charts': 'npm:@mescius/spread-sheets-charts/index.js', '@mescius/spread-sheets': 'npm:@mescius/spread-sheets/index.js', '@mescius/spread-sheets-react': 'npm:@mescius/spread-sheets-react/index.js', '@grapecity/jsob-test-dependency-package/react-components': 'npm:@grapecity/jsob-test-dependency-package/react-components/index.js', 'react': 'npm:react/cjs/react.production.js', 'react-dom': 'npm:react-dom/cjs/react-dom.production.js', 'react-dom/client': 'npm:react-dom/cjs/react-dom-client.production.js', 'scheduler': 'npm:scheduler/cjs/scheduler.production.js', 'css': 'npm:systemjs-plugin-css/css.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: 'jsx' }, "node_modules": { defaultExtension: 'js' }, } }); })(this);