필터 범위 자동 확장

SpreadJS는 데이터를 추가하거나, 필터 범위 아래에서 복사-붙여넣기, 끌어서 채우기 및 끌어서 놓기 작업을 사용하여 필터 범위 자동 확장을 지원합니다.

AutoExtendFilterRange는 모든 null 값이 필터 범위 열에 있을 때까지 원점 필터 범위 아래로 필터 범위를 자동으로 확장합니다. AutoExtendFilterRange는 일반 워크 시트 필터에서만 작동하고 table/pivotTable/tableSheet 필터에서는 작동하지 않습니다. 기본값이 false(비활성화됨)인 allowAutoExtendFilterRange를 사용하여 필터 범위 자동 확장을 비활성화/활성화할 수 있습니다. allowAutoExtendFilterRange가 true이면 사용자는 rowFilter.extendedRange로 확장된 필터 범위를 가져올 수 있습니다.
window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); initSpread(spread); }; function initSpread(spread) { var spreadNS = GC.Spread.Sheets; spread.suspendPaint(); _bindEvent(spread); var sheet = spread.getSheet(0); var headerStyle = new spreadNS.Style(); headerStyle.font = "bold 11pt Calibri" sheet.setStyle(1,1,headerStyle); sheet.setStyle(1,2,headerStyle); sheet.setStyle(1,3,headerStyle); sheet.setStyle(1,4,headerStyle); sheet.setColumnWidth(1, 120); sheet.setColumnWidth(2, 120); sheet.setColumnWidth(3, 120); sheet.setColumnWidth(4, 120); sheet.getCell(1, 1).text("First Name"); sheet.getCell(1, 2).text("Last Name"); sheet.getCell(1, 3).text("Score"); sheet.getCell(1, 4).text("Position"); sheet.getCell(2, 1).text("Alexa"); sheet.getCell(2, 2).text("Wilder"); sheet.getCell(2, 3).text("90"); sheet.getCell(2, 4).text("Web Developer"); sheet.getCell(3, 1).text("Victor"); sheet.getCell(3, 2).text("Wooten"); sheet.getCell(3, 3).text("70"); sheet.getCell(3, 4).text(".NET Developer"); sheet.getCell(4, 1).text("Ifeoma"); sheet.getCell(4, 2).text("Mays"); sheet.getCell(4, 3).text("85"); sheet.getCell(4, 4).text("Sales Manager"); var basedFilterRange = new spreadNS.Range(2,1,2,4); var rowFilter = new spreadNS.Filter.HideRowFilter(basedFilterRange); sheet.rowFilter(rowFilter); spread.resumePaint(); } function _bindEvent (spread) { _getElementById("allowAutoExtendFilterRange").addEventListener('change', function() { spread.options.allowAutoExtendFilterRange = _getElementById("allowAutoExtendFilterRange").checked; }); } function _getElementById(id){ return document.getElementById(id); }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta name="spreadjs culture" content="ko-kr" /> <meta charset="utf-8" /> <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"> <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-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 class="sample-tutorial"> <div id="ss" class="sample-spreadsheets"></div> <div class="options-container"> <p>Change the state of allowAutoExtendFilterRange and open the filter dialog to see how the filter range extend works.</p> <div class="option-group"> <input type="checkbox" id="allowAutoExtendFilterRange"/> <label for="allowAutoExtendFilterRange">Allow Auto Extend Filter Range</label> </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% - 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; margin-top: 10px; } .option-group { margin-bottom: 6px; } label { display: inline-block; min-width: 90px; margin-bottom: 6px; } select { padding: 4px 6px; } p { padding: 0 0 12px; margin: 0; } .options-toggle { display: none; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }