Initialize Sheet

Use the addSheet, removeSheet, clearSheets functions to add, remove or clear sheets.

Description
app.jsx
app-func.jsx
app-class.jsx
panel.jsx
index.html
styles.css
Copy to CodeMine

Use the following steps to reference Spread and work with the sheets.

Similar to other libraries, Sheet requires the following included files:

  • gc.spread.sheets.x.x.x.css
  • gc.spread.sheets.all.x.x.x.min.js

Create a sheet using the following code (the parameter is the sheet's name).

    var sheet = new GC.Spread.Sheets.Worksheet('NewSheet');

Add it at the specified position of an existing Spread component.

    spread.addSheet(0, sheet);

If you want to remove an existing sheet from the Spread component, use the following code. This example code removes the first sheet in the Spread.

    spread.removeSheet(0);

If you want to remove all the sheets in the Spread component, use the convenient clearSheets method.

    spread.clearSheets();

If you want to customize the sheet's name, use the name methods to get and set the sheet's name.

    var sheetName = sheet.name();
    sheet.name('sheet1');
Use the following steps to reference Spread and work with the sheets. Similar to other libraries, Sheet requires the following included files: gc.spread.sheets.x.x.x.css gc.spread.sheets.all.x.x.x.min.js Create a sheet using the following code (the parameter is the sheet's name). Add it at the specified position of an existing Spread component. If you want to remove an existing sheet from the Spread component, use the following code. This example code removes the first sheet in the Spread. If you want to remove all the sheets in the Spread component, use the convenient clearSheets method. If you want to customize the sheet's name, use the name methods to get and set the sheet's name.
import * as React from 'react'; import * as ReactDOM from 'react-dom'; import './styles.css'; import { AppFunc } from './app-func'; import { App } from './app-class'; // 1. Functional Component sample ReactDOM.render(<AppFunc />, document.getElementById('app')); // 2. Class Component sample // ReactDOM.render(<App />, document.getElementById('app'));
import * as React from 'react'; import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react'; import './styles.css'; import { Panel } from './panel'; export function AppFunc() { let spread = null; let initSpread = function (value) { spread = value; } let addSheet = function () { var activeIndex = spread.getActiveSheetIndex(); if (activeIndex >= 0) { spread.addSheet(activeIndex + 1); spread.setActiveSheetIndex(activeIndex + 1); } else { spread.addSheet(0); spread.setActiveSheetIndex(0); } } let removeSheet = function () { if (spread.getSheetCount() > 0) { spread.removeSheet(spread.getActiveSheetIndex()); } } let clearSheet = function () { spread.clearSheets(); } return ( <div class="sample-tutorial"> <div class="sample-spreadsheets"> <SpreadSheets workbookInitialized={spread => initSpread(spread)}> <Worksheet></Worksheet> </SpreadSheets> </div> <Panel addSheet={() => addSheet()} removeSheet={() => removeSheet()} clearSheet={() => clearSheet()} ></Panel> </div> ); }
import * as React from 'react'; import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react'; import './styles.css'; import { Panel } from './panel'; const Component = React.Component; export class App extends Component { constructor(props) { super(props); this.spread = null; this.autoGenerateColumns = false; } render() { return ( <div class="sample-tutorial"> <div class="sample-spreadsheets"> <SpreadSheets workbookInitialized={spread => this.initSpread(spread)}> <Worksheet></Worksheet> </SpreadSheets> </div> <Panel addSheet={() => this.addSheet()} removeSheet={() => this.removeSheet()} clearSheet={() => this.clearSheet()} ></Panel> </div> ); } initSpread(spread) { this.spread = spread; } addSheet() { let spread = this.spread; var activeIndex = spread.getActiveSheetIndex(); if (activeIndex >= 0) { spread.addSheet(activeIndex + 1); spread.setActiveSheetIndex(activeIndex + 1); } else { spread.addSheet(0); spread.setActiveSheetIndex(0); } } removeSheet() { let spread = this.spread; if (spread.getSheetCount() > 0) { spread.removeSheet(spread.getActiveSheetIndex()); } } clearSheet() { let spread = this.spread; spread.clearSheets(); } }
import * as React from 'react'; import './styles.css'; export function Panel(props) { return ( <div class="options-container"> Adds a sheet after the active one <input type="button" value="Add Sheet" onClick={props.addSheet} /> <br /> Removes the active sheet <input type="button" value="Remove Sheets" onClick={props.removeSheet} /> <br /> Clears all the sheets from the workbook <input type="button" value="Remove All Sheets" onClick={props.clearSheet} /> </div> ); }
<!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"> <script src="$DEMOROOT$/spread/source/data/data.js" type="text/javascript"></script> <!-- 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: calc(100% - 280px); height: 100%; overflow: hidden; float: left; } .options-container { float: right; width: 280px; padding: 12px; height: 100%; box-sizing: border-box; background: #fbfbfb; overflow: auto; } input { padding: 4px 6px; } input[type=button] { margin-top: 6px; display: block; } 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': '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/umd/react.production.min.js', 'react-dom': 'npm:react-dom/umd/react-dom.production.min.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);