我在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'})
|