Sheets Reorder

You can reorder Worksheets and TableSheets by reordering the tabs of tab strip.

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

You can get the sheet position by using the getSheetPosition method, for example:

/**
 * Gets the sheet tab position with the specified name.
 * @param {string} name The sheet tab name.
 * @returns {number} The sheet tab position, based on the Worksheet and TableSheet collection.
 */
getSheetPosition(sheetName: string): number;

//This example uses the getSheetPosition method.
spread.setSheetCount(5);
spread.addSheetTab(0, "tableSheet1", GC.Spread.Sheets.SheetType.tableSheet);
var position = spread.getSheetPosition("tableSheet1");
console.log(position); // 5

You can also change the sheet position by using the changeSheetPosition method, for example:

/**
 * Change sheet position and reorder sheets.
 * @param {string} sheetName The sheet name.
 * @param {number} targetPosition The target position.
 */
changeSheetPosition(sheetName: string, targetPosition: number): boolean;

//This example show how to change sheet position.
spread.setSheetCount(5);
spread.addSheetTab(0, "tableSheet1", GC.Spread.Sheets.SheetType.tableSheet); // The sheets sequence should be "Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "tableSheet1".
spread.changeSheetPosition("tableSheet1", 3); // The sheets sequence should be "Sheet1", "Sheet2", "Sheet3", "tableSheet1", "Sheet4", "Sheet5".

In addition, the sub property sheetPosition is added for event GC.Spread.Sheets.Events.SheetChanging and event GC.Spread.Sheets.Events.SheetChanged.

spread.bind(GC.Spread.Sheets.Events.SheetChanging, function (e, args) {
    console.log(args.sheetPosition);
});

spread.bind(GC.Spread.Sheets.Events.SheetChanged, function (e, args) {
    console.log(args.sheetPosition);
});
You can get the sheet position by using the getSheetPosition method, for example: You can also change the sheet position by using the changeSheetPosition method, for example: In addition, the sub property sheetPosition is added for event GC.Spread.Sheets.Events.SheetChanging and event GC.Spread.Sheets.Events.SheetChanged.
/*REPLACE_MARKER*/ /*DO NOT DELETE THESE COMMENTS*/ window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(_getElementById('ss'), { sheetCount: 3 }); initSpread(spread); bindEvent(spread); }; function initSpread(spread) { spread.suspendPaint(); spread.options.autoFitType = GC.Spread.Sheets.AutoFitType.cellWithHeader; //init a data manager var tableName = "Supplier"; var baseApiUrl = getBaseApiUrl(); var apiUrl = baseApiUrl + "/" + tableName; var dataManager = spread.dataManager(); var myTable = dataManager.addTable("myTable", { remote: { read: { url: apiUrl } } }); //init a table sheet var sheet = spread.addSheetTab(0, "TableSheet1", GC.Spread.Sheets.SheetType.tableSheet); sheet.options.allowAddNew = false; //hide new row //bind a view to the table sheet myTable.fetch().then(function () { var view = myTable.addView("myView", [ { value: "Id", width: 80 }, { value: "CompanyName", width: 200, caption: "Company Name" }, { value: "ContactName", width: 150, caption: "Contact" }, { value: "ContactTitle", width: 200, caption: "Title" }, { value: "Address", width: 200 }, { value: "City", width: 150, caption: "City" }, { value: "State", width: 100, caption: "State" }, { value: "Region", width: 100, caption: "Region" } ]); sheet.setDataView(view); }); spread.resumePaint(); } function bindEvent(spread) { let button = _getElementById("getSheetPosition"); button.addEventListener("click", function () { let input = _getElementById("sheetPosition"); let sheetName, sheet = spread.getActiveSheet(); if (sheet) { sheetName = sheet.name(); } else { sheet = spread.getActiveSheetTab(); if (sheet) { sheetName = sheet.name(); } } if (sheetName) { input.value = sheetName + "'s position is " + spread.getSheetPosition(sheetName); } else { input.value = ""; } }) } function getBaseApiUrl() { return window.location.href.match(/http.+spreadjs\/demos\//)[0] + 'server/api'; } function _getElementById(id) { return document.getElementById(id); }
<!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"> <!-- Promise Polyfill for IE, https://www.npmjs.com/package/promise-polyfill --> <script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script> <script src="$DEMOROOT$/en/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/en/purejs/node_modules/@mescius/spread-sheets-tablesheet/dist/gc.spread.sheets.tablesheet.min.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"> <input type="button" id="getSheetPosition" value="Get Sheet Position" /> </div> <div class="option-row"> <input id="sheetPosition" /> </div> </div> </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; } .option-row { font-size: 14px; padding: 5px; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }