사용자 정의 레이아웃

선택적 디자이너 컴포넌트 추가 기능에 적용됩니다. 이 데모에서는 응용 프로그램의 사용자 정의된 리본 컨테이너를 만들기 위해 필요 시 리본 표시줄 탭을 숨기고 표시하는 방법을 보여줍니다.

이 샘플은 다음을 보여줍니다. 리본과 상황에 맞는 메뉴에서 탭과 버튼을 숨기고 필요한 항목만 표시합니다. 홈 탭의 삽입 및 삭제 버튼과 서식 대화 상자의 확인 및 취소 버튼의 텍스트를 변경합니다. 들여쓰기와 방향 드롭다운 목록을 비활성화합니다. 코드를 볼 때 다음 단계 수행을 확인할 수 있습니다. 새 디자이너 구성 만들기 특정 탭 숨기기 각 탭에서 특정 버튼 그룹 숨기기 리본의 버튼 비활성화 Designer.getResources() 호출로 버튼과 탭의 텍스트를 변경하여 지역화 사용자 정의 상황에 맞는 메뉴에서 특정 명령 제거 현재 디자이너 구성을 방금 만든 구성으로 바꾸기
window.onload = function () { initRibbon(); }; function initRibbon() { var config = GC.Spread.Sheets.Designer.DefaultConfig, commandNames = GC.Spread.Sheets.Designer.CommandNames; // Hide tabs except "Insert", "Page Layout", "Formula" and "Settings" config.ribbon = config.ribbon.filter( (rb) => rb.id !== 'insert' && rb.id !== 'pageLayout' && rb.id !== 'formulas' && rb.id !== 'settings' ); // Hide button except groups "Number", "Style" and "Edit" on Home tab let homeTab = config.ribbon.find((r) => r.id === 'home'); homeTab.buttonGroups = homeTab.buttonGroups.filter( (bg) => bg.label !== '표시 형식' && bg.label !== '스타일' && bg.label !== '편집' ); // Hide button except groups "Data Binding", "Query and Connection", "Outline" in Data tab let dataTab = config.ribbon.find((r) => r.id === 'data'); dataTab.buttonGroups = dataTab.buttonGroups.filter( (bg) => bg.label !== '데이터 바인딩' && bg.label !== '쿼리 및 연결' && bg.label !== '개요' ); // Hide button except groups "Zoom", "Viewport" and "Pane" in View tab let viewTab = config.ribbon.find((r) => r.id === 'view'); viewTab.buttonGroups = viewTab.buttonGroups.filter( (bg) => bg.label !== '확대/축소' && bg.label !== '창' && bg.label !== '개체 선택' ); // Hide "Format" except button in cell button group let cellButtonGroup = homeTab.buttonGroups.find((bg) => bg.label === '셀'); if (cellButtonGroup) { cellButtonGroup.commandGroup.children = cellButtonGroup.commandGroup.children.filter( (cg) => cg.command !== 'cellsFormat' ); } // Disable some buttons config.commandMap = { // disable decreaseIndent decreaseIndent: { enableContext: 'false', }, // disable increaseIndent increaseIndent: { enableContext: 'false', }, // Disable orientationList orientationList: { enableContext: 'false', }, }; // Customizing the localization of the ribbon container var resources = GC.Spread.Sheets.Designer.getResources(); resources.ribbon.home.home = 'HOME'; resources.ribbon.data.data = 'DATA'; resources.ribbon.view.view = 'VIEW'; resources.ok = 'OK'; resources.cancel = 'CANCEL'; resources.formatDialog.title = 'FORMAT DIALOG'; resources.ribbon.home.wrapText = 'WRAP TEXT'; resources.ribbon.home.insert = 'INSERT'; resources.ribbon.home.Delete = 'DELETE'; GC.Spread.Sheets.Designer.setResources(resources); // Remove unnecessary context menu if (config.contextMenu) { const deleteMenu = [ commandNames.RichText, // RichText commandNames.InsertComment, // InsertComment commandNames.DefineName, // DefineName commandNames.CellTag, // CellTag commandNames.RowTag, // RowTag commandNames.ContextMenuOutlineColumn, // ContextMenuOutlineColumn commandNames.DesignerPasteFormulaFormatting, // DesignerPasteFormulaFormatting ]; for (let i = 0; i < config.contextMenu.length; i++) { var item = config.contextMenu[i]; if (deleteMenu.includes(item)) { config.contextMenu.splice(i, 1); } } } new GC.Spread.Sheets.Designer.Designer('ribbonHost', config); }
<!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"> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-designer/styles/gc.spread.sheets.designer.min.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-shapes/dist/gc.spread.sheets.shapes.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-charts/dist/gc.spread.sheets.charts.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-print/dist/gc.spread.sheets.print.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-barcode/dist/gc.spread.sheets.barcode.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-pdf/dist/gc.spread.sheets.pdf.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-languagepackages/dist/gc.spread.calcengine.languagepackages.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-pivot-addon/dist/gc.spread.pivot.pivottables.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-formula-panel/dist/gc.spread.sheets.formulapanel.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-io/dist/gc.spread.sheets.io.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-excelio/dist/gc.spread.excelio.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$/ko/purejs/node_modules/@mescius/spread-sheets-designer-resources-ko/dist/gc.spread.sheets.designer.resource.ko.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/ko/purejs/node_modules/@mescius/spread-sheets-designer/dist/gc.spread.sheets.designer.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/designer/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="ribbonHost"></div> <div id="ss"></div> </div> </body> </html>
.sample-tutorial { position: relative; height: 97vh; overflow: hidden; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; } #ribbonHost { height: 100%; } .description { margin: 10px; width: 40%; } table { font-family: arial, sans-serif; border-collapse: collapse; width: 100%; } td, th { border: 1px solid #dddddd; text-align: left; padding: 8px; } th { background-color: #dcdcdc; } tr:nth-child(even) { background-color: #f5f5f5; }