Spread Theme

This sample shows how you can apply a built-in theme to the UI of SpreadJS.

Description
app.js
index.html
styles.css
Copy to CodeMine

SpreadJS supports different Excel styles.

They are provided by css files as follows:

  • Excel 2007: gc.spread.sheets.x.x.x.css
  • Excel 2013 White: gc.spread.sheets.excel2013white.x.x.x.css
  • Excel 2013 Light Gray: gc.spread.sheets.excel2013lightgray.x.x.x.css
  • Excel 2013 Dark Gray: gc.spread.sheets.excel2013darkgray.x.x.x.css
  • Excel 2016 Colorful: gc.spread.sheets.excel2016colorful.x.x.x.css
  • Excel 2016 Dark Gray: gc.spread.sheets.excel2016darkgray.x.x.x.css

You can use any one of them by adding a style link in the head section of the page. For example:

<link rel="stylesheet" 
      href="css/gc.spread.sheets.excel2013white.x.x.x.css" />

You can dynamically switch between themes by changing the css reference file. Call the Spread refresh method to apply the change.

SpreadJS supports different Excel styles. They are provided by css files as follows: Excel 2007: gc.spread.sheets.x.x.x.css Excel 2013 White: gc.spread.sheets.excel2013white.x.x.x.css Excel 2013 Light Gray: gc.spread.sheets.excel2013lightgray.x.x.x.css Excel 2013 Dark Gray: gc.spread.sheets.excel2013darkgray.x.x.x.css Excel 2016 Colorful: gc.spread.sheets.excel2016colorful.x.x.x.css Excel 2016 Dark Gray: gc.spread.sheets.excel2016darkgray.x.x.x.css You can use any one of them by adding a style link in the head section of the page. For example: You can dynamically switch between themes by changing the css reference file. Call the Spread refresh method to apply the change.
var spreadNS = GC.Spread.Sheets; window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 }); spread.suspendPaint(); var sheet = spread.getActiveSheet(); addPieContent(sheet); var dataColumns = ["Interval", "Javascript", "Java", "Python", "Php", "C++", "C", "Ruby"]; var data = [ ["2017", 0.625, 0.397, 0.32, 0.281, 0.223, 0.19, 0.091], ["2018", 0.715, 0.454, 0.379, 0.314, 0.246, 0.221, 0.103], ["2019", 0.678, 0.411, 0.417, 0.264, 0.235, 0.206, 0.084] ]; sheet.tables.addFromDataSource("table1", 1, 1, data, spreadNS.Tables.TableThemes.light14); sheet.getRange(-1, 1, -1, 6).width(80); var table = sheet.tables.findByName("table1"); table.setColumnName(0, dataColumns[0]); table.setColumnName(1, dataColumns[1]); table.setColumnName(2, dataColumns[2]); table.setColumnName(3, dataColumns[3]); table.setColumnName(4, dataColumns[4]); table.setColumnName(5, dataColumns[5]); table.setColumnName(6, dataColumns[6]); table.setColumnName(7, dataColumns[7]); sheet.getRange("C3:I5").formatter("0.0%"); function addPieContent(sheet) { sheet.addSpan(6, 2, 12, 5); sheet.setFormula(6, 2, '=PIESPARKLINE(C1:I5, "#115f9a", "#1984c5", "#22a7f0", "#48b5c4", "#76c68f", "#a6d75b", "#c9e52f", "#d0ee11", "#d0f400")'); } spread.resumePaint(); document.getElementById('spreadThemes').onchange = function () { var header = document.getElementsByTagName('head')[0]; var target = document.querySelector('link[href*="gc.spread.sheets"]'); var href = target.href, pos = href.indexOf('gc.spread.sheets'), item = href.substr(0, pos) + this.value; header.removeChild(target); if (item) { addThemeLink(item); } else { spread.refresh(); } }; function addThemeLink(href) { var link = document.createElement('link'); link.type = "text/css"; link.rel = "stylesheet"; link.href = href; link.onload = function () { spread.refresh(); }; var header = document.getElementsByTagName('head')[0]; header.appendChild(link); } };
<!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/purejs/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/en/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/data/data.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" class="sample-spreadsheets"></div> <div class="options-container"> <div class="option-row"> <label>Define Spread theme below:</label> <select id="spreadThemes"> <optgroup label="SpreadJS"> <option value="gc.spread.sheets.css">SpreadJS</option> </optgroup> <optgroup label="Excel2013"> <option value="gc.spread.sheets.excel2013white.css" selected>White</option> <option value="gc.spread.sheets.excel2013lightGray.css">Light Gray</option> <option value="gc.spread.sheets.excel2013darkGray.css">Dark Gray</option> </optgroup> <optgroup label="Excel2016"> <option value="gc.spread.sheets.excel2016colorful.css">Colorful</option> <option value="gc.spread.sheets.excel2016darkGray.css">Dark Gray</option> <option value="gc.spread.sheets.excel2016black.css">Black</option> </optgroup> </select> </div> </div> </div> </body> </html>
.sample { position: relative; height: 100%; overflow: auto; } .sample::after { display: block; content: ""; clear: both; } .sample-tutorial { position: relative; height: 100%; overflow: hidden; } .sample-spreadsheets { width: calc(100% - 250px); height: 100%; overflow: hidden; float: left; } label { display: block; margin-bottom: 6px; } input, select { padding: 4px 6px; box-sizing: border-box; margin-bottom: 6px; } .options-container { float: right; width: 250px; padding: 12px; height: 100%; box-sizing: border-box; background: #fbfbfb; overflow: auto; } .option-row { font-size: 14px; padding: 5px; margin-top: 10px; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }