本帖最后由 lynn512 于 2020-12-4 17:24 编辑
您的需求是 复制spreadA的sheet 至 spreadB的某一个sheet 对吗?样式混乱是由于您导入的excel文件使用了大量的名称样式,并全局注册到了spreadA中。
当您导出某个sheet页时,并未携带这些名称样式,所以spreadB中才会出现样式混乱。
具体原理请参考此篇技术博客:https://www.grapecity.com.cn/blogs/sjs-single-sheet-loading
解决方法请参考下方代码:
function openExcel(e){
let File = document.getElementById('fileField').files[0];
let excelIo = new GC.Spread.Excel.IO();
excelIo.open(File, (json) => {
spreadA.suspendPaint();
spreadA.fromJSON(json);
spreadA.resumePaint();
spreadA.removeSheet(0);
})
}
function addSheetB(e){
var sheetJson = JSON.stringify(spreadA.getSheet(0).toJSON());
spreadB.suspendPaint();
spreadA.getNamedStyles().forEach(function (namedStyle) {
spreadB.addNamedStyle(namedStyle);
})
spreadB.getSheet(0).fromJSON(JSON.parse(sheetJson));
spreadB.resumePaint();
}
|