cccc 发表于 2024-7-5 09:49:11

spread windows forms 14不同的spread控件能否实现范围复制粘贴

本帖最后由 cccc 于 2024-9-6 13:49 编辑

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

Richard.Ma 发表于 2024-7-5 13:44:43

本帖最后由 Richard.Ma 于 2024-7-5 13:45 编辑

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

            var s=fpSpread1.ActiveSheet.GetSelection(0);
            fpSpread1.ActiveSheet.ClipboardCopy(s);

然后再用
            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/documents-api-excel-java/demos/cutcopyrangebetweenworkbooks

cccc 发表于 2024-9-6 13:48:40

Richard.Ma 发表于 2024-7-5 13:44
跨控件复制,你肯定得把内容先复制到系统的剪切板,所以你是应该用ClipboardCopy




通过代码从一个spread的当前表某个区域复制粘贴到另一个spread当前表,一直报“索引超出了数组界限”。

Richard.Ma 发表于 2024-9-7 00:12:51

你指的“另一个spread当前表”是说行列数完全一样吗,有没有可能美誉那么多行列数

最好给一个demo看看,不然不好判断原因

cccc 发表于 2024-9-9 09:28:24

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 发表于 2024-9-9 10:34:45

给个demo看看吧。我用相同的代码没能复现问题,可以正常粘贴

Richard.Ma 发表于 2024-9-30 09:22:36

没有看到您再回复,这个帖子先结帖了。如果有新的问题,可以发新帖沟通
页: [1]
查看完整版本: spread windows forms 14不同的spread控件能否实现范围复制粘贴