registerInsert(spread) {
var insertRowsBelow = {
canUndo: true,
name: 'insertRowsBelow',
execute: function(context, options, isUndo) {
var Commands = GC.Spread.Sheets.Commands
if (isUndo) {
Commands.undoTransaction(context, options)
return true
} else {
Commands.startTransaction(context, options)
var sheet = context.getSheetFromName(options.sheetName)
sheet.suspendPaint()
if (options.selections && options.selections.length) {
var row = options.selections[0].row + 1
var rowCount = options.selections[0].rowCount
sheet.addRows(row, rowCount)
var colCount = sheet.getColumnCount()
for (var i = 0; i < colCount; i++) {
var actualStyle = sheet.getActualStyle(row - 1, i)
sheet.setStyle(row, i, actualStyle)
sheet.copyTo(row - 1, 0, row, 0, 1, sheet.getColumnCount(), GC.Spread.Sheets.CopyToOptions.formula)
}
}
sheet.resumePaint()
Commands.endTransaction(context, options)
return true
}
}
}
// 注册命令
spread.commandManager().register('insertRowsBelow', insertRowsBelow)
// 替换原有插入命令
function MyContextMenu() {
}
MyContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread)
MyContextMenu.prototype.onOpenMenu = function(menuData, itemsDataForShown, hitInfo, spread) {
itemsDataForShown.forEach(function(item, index) {
if (item && item.name === 'gc.spread.insertRows') {
item.command = 'insertRowsBelow'
}
})
}
var contextMenu = new MyContextMenu()
spread.contextMenu = contextMenu
}, |