找回密码
 立即注册

QQ登录

只需一步,快速开始

lynn8588

金牌服务用户

40

主题

161

帖子

413

积分

金牌服务用户

积分
413
lynn8588
金牌服务用户   /  发表于:2022-12-30 11:57  /   查看:2441  /  回复:18
本帖最后由 Ellia.Duan 于 2023-1-13 10:18 编辑

请教一下,我们有这样一个需求,从外部或者内部粘贴数据时,只需要粘贴值,按照使用的规则,就设置了属性:workbook.options.allowCopyPasteExcelStyle = false;

因为我们以前还有一个复制粘贴图片的功能,发现这个设置会导致图片没办法粘贴到spreadjs 的sheet内,请问这个有方法可以兼容一下么?

18 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-30 13:36:09
沙发
本帖最后由 Ellia.Duan 于 2022-12-30 13:37 编辑

您好,您可以在粘贴事件ClipboardPasted中对粘贴内容进行判断,
activeSheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
    console.log("ClipboardPasted");
});

另外,可以参考这个
https://demo.grapecity.com.cn/sp ... ipboardPasteOptions
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-30 16:23:03
板凳
按照您提供的方法,已经试过,但是我这边试出来的效果试,只要allowCopyPasteExcelStyle 属性设置为了true,从外部copy粘贴来的数据都会带样式,
args.pasteOption = GC.Spread.Sheets.ClipboardPasteOptions.values;这个设置完全无效
window.mySpread.getActiveSheet().options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;这个设置也无效
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-30 16:24:40
地板
本帖最后由 Ellia.Duan 于 2023-1-3 17:53 编辑

设置代码如下:
image.png404060363.png
回复 使用道具 举报
lynn8588
金牌服务用户   /  发表于:2022-12-30 16:27:13
5#
同时当allowCopyPasteExcelStyle属性设置为false的时候,粘贴图片不会触发clipboardPasted方法
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-30 18:07:51
6#
您的问题收到,这边需要调研下,有结果会及时通知您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-3 18:13:06
7#
您好,这边为您想到一个方案就是,不设置allowCopyPasteExcelStyle
然后从外部excel中ctrl+C复制带格式的单元格时,此时可以在粘贴事件中清除其格式。如下代码,但是如果粘贴的是图片,则不做任何处理
  1.   spread.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
  2.             const {pasteData, cellRange, sheet} = args
  3.             if (!pasteData.image) {
  4.                 sheet.getRange(cellRange.row, cellRange.col, cellRange.rowCount, cellRange.colCount).setStyle(new GC.Spread.Sheets.Style());
  5.             }

  6.         });
复制代码


回复 使用道具 举报
xtm_320
注册会员   /  发表于:2023-1-5 19:04:50
8#
Ellia.Duan 发表于 2023-1-3 18:13
您好,这边为您想到一个方案就是,不设置allowCopyPasteExcelStyle
然后从外部excel中ctrl+C复制带格式的 ...

这种方式不行的,因为我们的excel上本身是有单元格的样式的,这样设置,就直接把我们单元格的原有样式清空了!你们那个粘贴选项,设置都无效么?
回复 使用道具 举报
xtm_320
注册会员   /  发表于:2023-1-5 19:06:23
9#
Ellia.Duan 发表于 2023-1-3 18:13
您好,这边为您想到一个方案就是,不设置allowCopyPasteExcelStyle
然后从外部excel中ctrl+C复制带格式的 ...

我和贴主是一个项目上的同事,所以麻烦你们再看下有没有其他的解决方法
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-6 09:56:59
10#
您好,您这边的需求不是设置了workbook.options.allowCopyPasteExcelStyle = false;前提下要复制图片么。既然设置了不允许复制粘贴excel的style 。那怎么理解您说的这句话呢:“这种方式不行的,因为我们的excel上本身是有单元格的样式的,这样设置,就直接把我们单元格的原有样式清空了!”
既然要保留样式,为什么要设置workbook.options.allowCopyPasteExcelStyle = false??
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部