本帖最后由 Samuer 于 2021-3-31 15:42 编辑
- registerDeleteCommand() {
- const command = {
- canUndo: true,
- execute: function (context: GC.Spread.Sheets.Workbook, options: any, isUndo: any) {
- const Commands = GC.Spread.Sheets.Commands
- if (isUndo) {
- Commands.undoTransaction(context, options)
- return true;
- } else {
- context.suspendPaint()
- Commands.startTransaction(context, options)
- const sheet: GC.Spread.Sheets.Worksheet = context.getSheetFromName(options.sheetName)
- const selections: GC.Spread.Sheets.Range[] = sheet.getSelections()
- selections.forEach((selection: GC.Spread.Sheets.Range) => {
- const row = selection.row < 0 ? 0 : selection.row
- const col = selection.col < 0 ? 0 : selection.col
- const rowCount = selection.rowCount
- const colCount = selection.colCount
- for (let r = 0; r < rowCount; r++) {
- for (let c = 0; c < colCount; c++) {
- const cell = sheet.getCell(row + r, col + c)
- const cellTag: EY.Tag.Cell = cell.tag() || {}
- if (cellTag.currency) {
- // 重置tag中本位币
- cellTag.currency.standardCurrencyValue = null
- cell.value(null)
- }
- }
- }
- })
- Commands.endTransaction(context, options)
- context.resumePaint()
- return true
- }
- }
- }
- const commandManager = spreadVM.commandManager()
- commandManager.register("customDeleteCommand", command, GC.Spread.Commands.Key.del)
- commandManager.setShortcutKey("customDeleteCommand", GC.Spread.Commands.Key.del, false, false, false, false)
- }
复制代码 下面是监听- public cellValueChanged(sheet: GC.Spread.Sheets.Worksheet) {
- const _this = this
- function valueChanged() {
- try {
- if (sheet.tag().tableType === EY.Tag.SheetTagEnum.TableTypeEnum.SYSTEM) {
- return true
- }
- const activeRow: number = sheet.getActiveRowIndex()
- const activeCol: number = sheet.getActiveColumnIndex()
- const cellTag: EY.Tag.Cell = sheet.getTag(activeRow, activeCol) || {}
- if (cellTag.action) {
- _this.runAction(sheet)
- }
- } catch (e) {
- console.error(e, 'isEditingValueChanged')
- }
- }
- sheet.bind(GC.Spread.Sheets.Events.RangeChanged, valueChanged)
- sheet.bind(GC.Spread.Sheets.Events.ValueChanged, valueChanged)
- }
复制代码
|
|