autoFitRow也改变了行高,触发RowHeightChanged事件也是正常的响应。应对您的需求,可以在代码全局设置一个变量记录是否为autoFitRow标记,同时在RowHeightChanged事件中根据该标记判断触发行高变化的动作是自适应行高还是手动设置。具体思路如下所述:
1. 设定autoFitRowFlag变量以记录是否为代码autoFitRow自适应行高,默认为false。
2. 在调用Worksheet:autoFitRow()前将autoFitRowFlag修改为true。
3. 在RowHeightChanged事件处理函数中,判断autoFitRowFlag变量的值:
3.1. 如果为true,即autoFitRow代码设置自适应行高,则在处理完相关业务逻辑前或后设置其为false。
3.2. 如果为false,则非autoFitRow代码设置自适应行高,则可执行相关业务逻辑。
可参考如下代码:
- var autoFitRowFlag = false;
- function wordWrap(row, col) {
- sheet.getCell(row, col).wordWrap(true);
- autoFitRowFlag = true;
- sheet.autoFitRow(row);
- }
- sheet.unbind(GC.Spread.Sheets.Events.RowHeightChanged);
- sheet.bind(GC.Spread.Sheets.Events.RowHeightChanged, function(e, args) {
- console.log('row height changed, args: ', args);
- if (autoFitRowFlag) {
- console.log('auto fit row');
- autoFitRowFlag = false;
- } else {
- console.log('manual set row height');
- }
- });
复制代码
如上所述方案仅能控制调用Worksheet:autoFitRow()代码时触发的RowHeightChanged事件,无法控制工具栏菜单选项“自适应行高”触发的RowHeightChanged事件。您可以评估下看能否满足需求。
|