头发乱了 发表于 2024-12-10 17:57:05

插入列后格式与其它列格式不一致

插入列后格式与其它列格式不一致

Wilson.Zhang 发表于 2024-12-10 17:57:06

您好!插入行列并不会复制基行基列的样式,这个是SpreadJS的产品设计,将为插入行列设置样式的控制权交给用户,即需要在插入行列后再根据需要设置样式。可以监听ColumnChanged事件,插入列后将基列的样式通过Worksheet:copyTo()复制在先插入列上。

可以参考官网API文档了解上述接口的详细使用方式:
ColumnChanged--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Events#columnchanged
Worksheet:copyTo()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#copyto

头发乱了 发表于 2024-12-11 09:20:51

Wilson.Zhang 发表于 2024-12-11 08:52
您好!插入行列并不会复制基行基列的样式,这个是SpreadJS的产品设计,将为插入行列设置样式的控制权交给用 ...

好的 我试试

Wilson.Zhang 发表于 2024-12-11 13:40:32

头发乱了 发表于 2024-12-11 09:20
好的 我试试

:mj72:

头发乱了 发表于 2024-12-11 14:04:38

Wilson.Zhang 发表于 2024-12-11 08:52
您好!插入行列并不会复制基行基列的样式,这个是SpreadJS的产品设计,将为插入行列设置样式的控制权交给用 ...

activeSheet.bind(
          GC.Spread.Sheets.Events.ColumnChanged,
          function (e, info) {
            if (info.sheetArea === GC.Spread.Sheets.SheetArea.viewport) {
            const count = activeSheet.getRowCount(
                GC.Spread.Sheets.SheetArea.viewport
            );
            const range = activeSheet.getRange(1, info.col, count, 1);
            activeSheet.copyTo(
                range.row,
                range.col,
                range.row,
                info.col - 1,
                range.rowCount,
                1,
                GC.Spread.Sheets.CopyToOptions.style
            );
            }
          }
      );

写的好像不对 copyTo后无法插入列注释以后可以 可以提供下示例吗

Wilson.Zhang 发表于 2024-12-11 17:10:35

头发乱了 发表于 2024-12-11 14:04
activeSheet.bind(
          GC.Spread.Sheets.Events.ColumnChanged,
          function (e, info)...

比如以D列为基列插入列,ColumnChanged监听到的col是插入列的索引,也是插入前的基列索引,count记录了插入的列数。因此,在copyTo()中的起始列索引应该是事件监听信息col+count后的值,即插入列后基列现在的索引,参考如下代码:
sheet.bind(GC.Spread.Sheets.Events.ColumnChanged, function(e, args) {
    console.log('column changed, args: ', args);
    sheet.copyTo(0, args.col + args.count, 0, args.col, sheet.getRowCount(), args.count, GC.Spread.Sheets.CopyToOptions.style);
});
上述代码运行效果如下动图所示:

头发乱了 发表于 2024-12-11 17:26:44

Wilson.Zhang 发表于 2024-12-11 17:10
比如以D列为基列插入列,ColumnChanged监听到的col是插入列的索引,也是插入前的基列索引,count记录了插 ...

可以 非常感谢

Wilson.Zhang 发表于 2024-12-12 08:40:49

头发乱了 发表于 2024-12-11 17:26
可以 非常感谢

不客气!问题既已得到解决,那就结帖了。如有新问题,欢迎发新帖沟通。
{:5_110:}
页: [1]
查看完整版本: 插入列后格式与其它列格式不一致