spreadjs-designer
designer
<gc-spread-sheets-designer :styleInfo='styleInfo' :config="config" :spreadOptions="spreadOptions" @designerInitialized='designerInitialized'>
</gc-spread-sheets-designer>
/**
设计器的高宽
styleInfo:{
height: "100%",
width: '80%'
}
设计器选项卡的数据(头部、插入等),可以对其进行配置修改等。
config: GC.Spread.Sheets.Designer.DefaultConfig
spreadOptions: {
sheetCount: 1, // 默认生成的表单个数
}
designerInitialized(value) { // value就是代表整个设计器
}
*/
效果图如下:
spread:设计器的工作簿
在designerInitialized方法里面可以得到工作簿的值。
spread = value.getWorkbook()
问题
1、删除Excel表单的空白区域
spread.options.scrollbarMaxAlign = true
1行代码就能解决,但是重新对spread进行formJSON操作,从指定的JSON字符串加载对象状态后,scrollbarMaxAlign = true就会失效,需要重新进行赋值。
2、数据量大或者表单多的时候速度变得很慢
spread.suspendPaint(); // 暂停绘制
spread.suspendCalcService(false); // 挂起计算服务。
… // 一系列操作
spread.resumeCalcService(true); // 恢复计算服务。
spread.resumePaint(); // 恢复绘制
已验证十分有效。
官网相关地址:添加链接描述
3、工具栏默认收起
document.getElementsByClassName("gc-ribbon-bar")[0].classList.add("collapsed");
4、工具栏配置
let config= GC.Spread.Sheets.Designer.DefaultConfig
// 工具栏文件button
delete config.fileMenu
5、快捷键禁用
// 禁用CTRL+Y
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.y, true, false, false, false);
// 禁用CTRL+X
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.x, true, false, false, false);
// 禁用CTRL+V
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.v, true, false, false, false);
6、保护表
sheet.options.protectionOptions.allowSelectLockedCells = false;
sheet.options.isProtected = true;
7、重写delete方法
8、清除
// 批量清除公式
activeSheet.setArrayFormula(row, col, rowCount, colCount, undefined);
//
9、拖拽
// 不允许拖拽
workbook.options.allowUserDragDrop = false
// 表单锁定后,列可拖动
sheet.options.protectionOptions = {
allowResizeColumns : true
};