Posted 18 July 2022, 5:30 am EST
Hi,
For this, you may use the following code snippet. Please have a look and let me know if you still face any issues.
var command = {
canUndo: true,
execute: function(spread, options, isUndo) {
var Commands = GC.Spread.Sheets.Commands;
if (isUndo) {
Commands.undoTransaction(spread, options);
return true;
} else {
Commands.startTransaction(spread, options);
spread.suspendPaint();
var selections = options.selections;
var sheet = spread.getActiveSheet();
selections.forEach(function(sel) {
for(let r= sel.row;r<sel.row+sel.rowCount; r++){
for(let c= sel.col;c<sel.col+sel.colCount; c++){
sheet.setStyle(r,c,null)
}
}
});
spread.resumePaint();
Commands.endTransaction(spread, options);
return true;
}
}
};
var commandManager = ss.commandManager();
commandManager.register('myClear', command);
/*override old function*/
let old = GC.Spread.Sheets.Worksheet.prototype.clear;
GC.Spread.Sheets.Worksheet.prototype.clear = function(r,c,rCount,cCount,v,sType){
if(sType === GC.Spread.Sheets.StorageType.style){
return commandManager.execute({
cmd:"myClear",
sheetName:ss.getActiveSheet().name(),
selections:[ss.getActiveSheet().getRange(r,c,rCount,cCount,v)]
})
}
return old.apply(this,arguments);
}
sample: https://jscodemine.grapecity.com/share/HIygxzjElk_b3N_-RqZjsg/
Regards,
Avinash