彩票走势图

纯前端表格控件SpreadJS使用教程:如何实现跨Workbook复制

原创|产品更新|编辑:龚雪|2021-09-26 10:47:34.447|阅读 419 次

概述:本文主要介绍如何使用SpreadJS组件实现跨Workbook复制,欢迎下载相关工具体验!

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

点击获取SpreadJS工具下载

客户在实际项目开发中,会有一张公用sheet存在别的文件中,在别的文件中,想要用到公用sheet中的部分数据时,直接从公用sheet中去复制即可。

此需求如果借助SpreadJS提供的UI行为实现是比较方便的,可以打开两个浏览器窗口,借助浏览器复制、粘贴功能,实现粘贴复制,但需要注意的是,浏览器的粘贴复制无法复制单元格公式。如果要保留公式,此时就需要使用SpreadJS内部的复制粘贴功能,但SpreadJS内部复制、粘贴必须操作在同一个Spread当中,因此需要将公用sheet添加到当前spread当中,本质就是将公用sheet toJSON()之后,再fromJSON()到当前Spread中,之后使用SpreadJS UI行为完成复制粘贴即可。

但用户的本质其实是不想在借助任何UI行为,希望在打开SpreadJS的同时,能将公用sheet中的部分数据就复制到当前Spread当中,从而实现一套自动化的复制粘贴流程,该需求实现的思路如下:

1. 复制公用sheet到当前Spread当中

spread.addSheet(spread.getSheetCount(),new GC.Spread.Sheets.Worksheet("common"))
let commonSheet = spread.getSheetFromName('common')
commonSheet.fromJSON(common)      //common指公用sheet toJSON之后生成的json结构

2. 选中公用sheet待复制区域

commonSheet.setSelection(0,0,2,3)
commonSheet.addSelection(4,0,2,3)

3. 执行copy命令

spread.commandManager().execute({
cmd: 'copy',
sheetName: 'common',
ignoreClipboard: true
})

4. 选中目标sheet要粘贴的位置起点

sheet.setSelection(1,0,1,1)

5. 执行粘贴操作

spread.commandManager().execute({
cmd: 'paste',
sheetName: sheet.name()
})

6. 粘贴完成后删除公用sheet

setTimeout(function(){
spread.removeSheet(spread.getSheetCount() - 1)
},1000)

这里注意到,删除sheet包了一层setTimeout,这是因为paste都是异步命令,需要等到这些操作完成之后在删掉公用sheet,否则会报错。

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

本文转载自


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP