需求:
新建sheet时,获取默认上一个sheet的打印配置
代码如下:
- //绑定新建sheet(sheet改变事件)
- spread.bind(GC.Spread.Sheets.Events.SheetChanged, function (sender, args) {
- //离开旧sheet时保存该sheet打印配置
- if (args.propertyName == 'isSelected' && args.oldValue) {
- prePrintInfo = spread.getSheet(args.sheetIndex).printInfo()
- }
- if (args.propertyName == 'insertSheet') {
- let sheet = spread.getSheet(args.sheetIndex)
- sheet.setRowCount(500)
- //默认获取上次打印配置
- if (prePrintInfo === undefined) {
- } else {
- sheet.printInfo(prePrintInfo);
- prePrintInfo = undefined
- }
- }
- });
复制代码 现在的问题是修改新的sheet打印配置,旧的sheet也会同步修改,猜测是prePrintInfo共用一个地址导致。
使用sheet.printInfo(Object.assign({}, prePrintInfo));
或者
sheet.printInfo(JSON.parse(JSON.stringify(prePrintInfo)));
都会报错。
console打印显示:
console.log(prePrintInfo);
console.log(Object.assign({}, prePrintInfo));
两者有什么区别吗?将这两个对象复制到json在线解析网站也显示不同结果
如何修改使各个sheet的printInfo独立,互不影响
|