找回密码
 立即注册

QQ登录

只需一步,快速开始

iaD.

注册会员

7

主题

14

帖子

53

积分

注册会员

积分
53
最新发帖
iaD.
注册会员   /  发表于:2024-4-2 18:05  /   查看:1932  /  回复:1
10金币
我在startTransaction和endTransaction之间的操作没有被记录到撤回栈中。调用spread.undoManager().getUndoStack()返回空数组,以下是代码:

GC.Spread.Sheets.Commands.startTransaction(workbook, {step: step, sheetName: 'Sheet1'})
workbook.suspendPaint()
const config = spread._config
config.commandMap.templateSave.title = stepMap[step].text
config.commandMap.templateSave.text = stepMap[step].text
config.commandMap.templateSave.iconClass = stepMap[step].icon
spread.setConfig(config)
               
// 锁定单元格
workbook.sheets.forEach(sheet => {
        sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount()).locked(true)
        sheet.options.isProtected = true
        const protectionOptions = {
                           allowSelectLockedCells: true,        // 用户是否可以选中被锁定的单元格
                           allowSelectUnlockedCells: true,        // 用户是否可以选中未被锁定的单元格
                          allowSort: false,                                // 用户是否可以对一片单元格区域进行排序
                           allowFilter: false,                                // 用户是否可以对一片单元格区域进行筛选
                          allowEditObjects: false,                        // 用户是否可以编辑浮动元素
                           allowResizeRows: false,                        // 用户是否可以改变行高
                           allowResizeColumns: false,                // 用户是否可以改变列宽
                           allowDragInsertRows: false,                // 用户是否可以拖拽插入行
                           allowDragInsertColumns: false,        // 用户是否可以拖拽插入列
                           allowInsertRows: false,                         // 用户是否可以插入行
                           allowInsertColumns: false,                // 用户是否可以插入列
                           allowDeleteRows: false,                        // 用户是否可以删除行
                           allowDeleteColumns: false,                // 用户是否可以删除列
                           allowOutlineColumns: false,                // 用户是否可以展开或者折叠列组合
                           allowOutlineRows: false,                        // 用户是否可以展开或者折叠行组合
                           formatCells: false,                                // 修改单元格格式
                           formatRows: false,                                // 修改行格式
                           formatColumns: false                                // 修改列格式
        }        
        sheet.options.protectionOptions = protectionOptions
})
workbook.resumePaint()
GC.Spread.Sheets.Commands.endTransaction(workbook, {step: step, sheetName: 'Sheet1'})

最佳答案

查看完整内容

您好,SpreadJS在表单保护的设计上和Excel保持一致,不支持设置了表单保护后再撤销。

1 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-2 18:05:45
来自 2#
您好,SpreadJS在表单保护的设计上和Excel保持一致,不支持设置了表单保护后再撤销。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部