다중 헤더 고정

워크시트에 TableSheet 데이터 범위 행 헤더를 포함하려는 경우 TableSheet를 렌더링할 때 sticky 옵션을 활성화할 수 있습니다.

설명
app.js
index.html
styles.css

사용법

다음 코드는 TableSheet를 워크시트로 렌더링한 다음 행 헤더를 표시하는 방법을 보여줍니다.

var tableSheetName = "TableSheet1";
var dataRangeName = "TableSheetDataRange";
var dataRangeStartRow = 2;
var dataRangeStartCol = 2;
sheet.dataRanges.add(dataRangeName, tableSheetName, new GC.Spread.Sheets.Range(dataRangeStartRow, dataRangeStartCol, -1, -1));

스티커 헤더

var options = { sticky: { top: 1 } };
sheet.dataRanges.add(dataRangeName, tableSheetName, new GC.Spread.Sheets.Range(dataRangeStartRow, dataRangeStartCol, -1, -1), options);

이 데모의 기능

  • 여러 헤더
사용법 다음 코드는 TableSheet를 워크시트로 렌더링한 다음 행 헤더를 표시하는 방법을 보여줍니다. 스티커 헤더 이 데모의 기능 여러 헤더
window.onload = function() { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 }); initSpread(spread); }; function initSpread(spread) { spread.suspendPaint(); var sheet = spread.getActiveSheet(); initTableSheet(spread, function(tableSheet) { spread.setActiveSheet(sheet.name()); var dataRange = registerTableSheetIntoWorksheet(tableSheet, sheet); beautifySheet(sheet, dataRange); spread.undoManager().clear(); }); spread.resumePaint(); } async function initTableSheet(spread, callback) { spread.options.autoFitType = GC.Spread.Sheets.AutoFitType.cellWithHeader; //init a data manager var dataManager = spread.dataManager(); var productAPI = getBaseApiUrl() + "/Product"; var productTable = dataManager.addTable("productTable", { remote: { read: { url: productAPI }, update: { url: productAPI, method: "PUT" }, create: { url: productAPI }, delete: { url: productAPI } } }); //init a table sheet var tableSheet = spread.addSheetTab(0, "MyTableSheet", GC.Spread.Sheets.SheetType.tableSheet); await productTable.fetch(); var myView = productTable.addView("myView", [ { value: "ProductName", caption: "Name", width: 250 }, { value: "SupplierId", caption: ["Foreign Keys", "Supplier Id"], width: 140 }, { value: "CategoryId", caption: ["Foreign Keys", "Category Id"], width: 140 }, { value: "QuantityPerUnit", caption: ["Product Infos", "Quantity Per Unit"], width: 140 }, { value: "UnitPrice", caption: ["Product Infos", "Unit Price"], width: 140 }, { value: "UnitsInStock", caption: ["Product Infos", "Units In Stock"], width: 140 }, { value: "=[@UnitPrice]*[@UnitsInStock]", caption: ["Product Infos", "Total Price"] } ]); tableSheet.setDataView(myView); spread.suspendPaint(); callback && callback(tableSheet); spread.resumePaint(); return tableSheet; } function registerTableSheetIntoWorksheet (tableSheet, sheet) { var name = tableSheet.name() + "_DataRange"; var row = 1; var col = 1; var dataRange = sheet.dataRanges.add(name, tableSheet.name(), new GC.Spread.Sheets.Range(row, col, -1, -1), { sticky: { top: 1 } }); return dataRange; } function beautifySheet(sheet, dataRange) { var range = dataRange.range(); for (var i = range.row; i < range.row + range.rowCount; i++) { sheet.autoFitRow(i); } for (var i = range.col; i < range.col + range.colCount; i++) { sheet.autoFitColumn(i); } sheet.setColumnWidth(1, 30); } function getBaseApiUrl() { return window.location.href.match(/http.+spreadjs\/learn-spreadjs\//)[0] + 'server/api'; }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta charset="utf-8" /> <meta name="spreadjs culture" content="ko-kr"/> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/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$/ko/purejs/node_modules/@mescius/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-tablesheet/dist/gc.spread.sheets.tablesheet.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-resources-ko/dist/gc.spread.sheets.resources.ko.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 id="ss"></div> </html>
body, html { width: 100%; height: 100%; position: relative; overflow: hidden; margin: 0; padding: 0; } #ss { width: 100%; height: 100%; }