'use strict'; /** * * * @author Zhong * @date 2018/6/28 * @version */ const pmShare = (function () { const spreadDom = $('#shareSpread'); let spread = null; const headers = [ {name: '工程列表', dataCode: 'name', width: 0.55, vAlign: 'center', hAlign: 'left'}, {name: '由...分享', dataCode: 'from', width: 0.15, vAlign: 'center', hAlign: 'right'}, {name: '分享给...', dataCode: 'to', width: 0.15, vAlign: 'center', hAlign: 'left'}, {name: '操作', dataCode: 'operation', width: 0.15, vAlign: 'center', hAlign: 'left'}, ]; const spreadOpts = { workBook: { tabStripVisible: false, allowContextMenu: false, allowCopyPasteExcelStyle : false, allowExtendPasteRange: false, allowUserDragDrop : false, allowUserDragFill: false, scrollbarMaxAlign : true }, sheet: { isProtected: true, protectionOptions: {allowResizeRows: true, allowResizeColumns: true}, clipBoardOptions: GC.Spread.Sheets.ClipboardPasteOptions.values } }; //渲染时方法,停止渲染 //@param {Object}sheet {Function}func @return {void} function renderSheetFunc(sheet, func){ sheet.suspendEvent(); sheet.suspendPaint(); if(func){ func(); } sheet.resumeEvent(); sheet.resumePaint(); } //设置表选项 //@param {Object}workBook {Object}opts @return {void} function setSpreadOptions (workBook, opts) { for(let opt in opts.workBook){ workBook.options[opt] = opts.workBook[opt]; } for(let opt in opts.sheet){ workBook.getActiveSheet().options[opt] = opts.sheet[opt]; } } //建表头 //@param {Object}sheet {Array}headers @return {void} function buildHeader(sheet, headers) { let fuc = function () { sheet.setColumnCount(headers.length); sheet.setRowHeight(0, 40, GC.Spread.Sheets.SheetArea.colHeader); for(let i = 0, len = headers.length; i < len; i++){ sheet.setValue(0, i, headers[i].name, GC.Spread.Sheets.SheetArea.colHeader); sheet.setColumnWidth(i, headers[i].width, GC.Spread.Sheets.SheetArea.colHeader); if(headers[i].formatter){ sheet.setFormatter(-1, i, headers[i].formatter); } sheet.getRange(-1, i, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[headers[i]['hAlign']]); sheet.getRange(-1, i, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[headers[i]['vAlign']]); } }; renderSheetFunc(sheet, fuc); } //表监听事件 //@param {Object}workBook @return {void} function bindEvent(workBook, events) { if(Object.keys(events).length === 0){ return; } const Events = GC.Spread.Sheets.Events; for(let event in events){ workBook.bind(Events[event], events[event]); } } //建表 // function buildSheet(){ if(spread){ spread.destroy(); return; } spread = new GC.Spread.Sheets.Workbook(spreadDom[0], {sheetCount: 1}); setSpreadOptions(spread, spreadOpts); const sheet = spread.getActiveSheet(); buildHeader(sheet, headers); //全表不可编辑 sheet.getRange(-1, -1, -1, -1).locked(true); } return {buildSheet} })(); $(document).ready(function () { });