插入列后格式与其它列格式不一致
插入列后格式与其它列格式不一致您好!插入行列并不会复制基行基列的样式,这个是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 Wilson.Zhang 发表于 2024-12-11 08:52
您好!插入行列并不会复制基行基列的样式,这个是SpreadJS的产品设计,将为插入行列设置样式的控制权交给用 ...
好的 我试试 头发乱了 发表于 2024-12-11 09:20
好的 我试试
:mj72: 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后无法插入列注释以后可以 可以提供下示例吗 头发乱了 发表于 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);
});
上述代码运行效果如下动图所示:
Wilson.Zhang 发表于 2024-12-11 17:10
比如以D列为基列插入列,ColumnChanged监听到的col是插入列的索引,也是插入前的基列索引,count记录了插 ...
可以 非常感谢 头发乱了 发表于 2024-12-11 17:26
可以 非常感谢
不客气!问题既已得到解决,那就结帖了。如有新问题,欢迎发新帖沟通。
{:5_110:}
页:
[1]