找回密码
 立即注册

QQ登录

只需一步,快速开始

cccc
金牌服务用户   /  发表于:2024-7-5 09:49  /   查看:625  /  回复:6
本帖最后由 cccc 于 2024-9-6 13:49 编辑

           我想把fpspread1控件的10行10列区域范围,这范围里有合并单元格,复制到fpspread2控件里,可以做到吗? 比如我用下面的命令,但没有效果。         Clipboard.Clear();//剪切板清空,防止内存溢出
            fpspread1.CopyRange(0, 0, 13, 13, 10, 10, false);
            fpspread2.ClipboardPaste();

6 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-5 13:44:43
沙发
本帖最后由 Richard.Ma 于 2024-7-5 13:45 编辑

跨控件复制,你肯定得把内容先复制到系统的剪切板,所以你是应该用ClipboardCopy

  1.             var s=fpSpread1.ActiveSheet.GetSelection(0);
  2.             fpSpread1.ActiveSheet.ClipboardCopy(s);
复制代码


然后再用
  1.             fpSpread2.ActiveSheet.ClipboardPaste(ClipboardPasteOptions.All, Clipboard.GetDataObject(),new FarPoint.Win.Spread.Model.CellRange(1,2,2,2));
复制代码


除此之外, 你们也有购买GCExcel,GC直接有提供通过代码跨workbook复制粘贴区域的方法
https://demo.grapecity.com.cn/do ... ngebetweenworkbooks

回复 使用道具 举报
cccc
金牌服务用户   /  发表于:2024-9-6 13:48:40
板凳
Richard.Ma 发表于 2024-7-5 13:44
跨控件复制,你肯定得把内容先复制到系统的剪切板,所以你是应该用ClipboardCopy

1725601459894.jpg182391966.png 通过代码从一个spread的当前表某个区域复制粘贴到另一个spread当前表,一直报“索引超出了数组界限”。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-9-7 00:12:51
地板
你指的“另一个spread当前表”是说行列数完全一样吗,有没有可能美誉那么多行列数

最好给一个demo看看,不然不好判断原因
回复 使用道具 举报
cccc
金牌服务用户   /  发表于:2024-9-9 09:28:24
5#
Richard.Ma 发表于 2024-9-7 00:12
你指的“另一个spread当前表”是说行列数完全一样吗,有没有可能美誉那么多行列数

最好给一个demo看看, ...

另一个spread控件,复制粘贴的原spread控件表单和目标spread控件表单的行列数都是用默认的500。我现在采用您提供的方法复制粘贴原spread的一个区域到目标spread。在这句fpSpread1.ActiveSheet.ClipboardPaste(ClipboardPasteOptions.All, Clipboard.GetDataObject(), new FarPoint.Win.Spread.Model.CellRange(1, 1, 10, 10));提示索引超出数组界限的错误。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-9-9 10:34:45
6#
给个demo看看吧。我用相同的代码没能复现问题,可以正常粘贴

image.png222000426.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:6 天前
7#
没有看到您再回复,这个帖子先结帖了。如果有新的问题,可以发新帖沟通
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部