找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice

中级会员

44

主题

208

帖子

608

积分

中级会员

积分
608
bingdaoice
中级会员   /  发表于:2019-9-17 09:48  /   查看:10509  /  回复:21
1金币
本帖最后由 bingdaoice 于 2019-9-17 10:28 编辑

            fpSpread1.Open(AppDomain.CurrentDomain.BaseDirectory + "129.xml");
            FarPoint.Win.Spread.FpSpread Spread_Excel = new FarPoint.Win.Spread.FpSpread();
            Spread_Excel.Open(AppDomain.CurrentDomain.BaseDirectory + "128.xml");
            Spread_Excel.ActiveSheet.Save("temp.xml", false);
            var newSheet = new FarPoint.Win.Spread.SheetView();
            newSheet.Open("temp.xml");
            newSheet.SheetName = "NewSheet";
            fpSpread1.Sheets.Add(newSheet);
            fpSpread1.Sheets[1].AddSelection(0, 0, newSheet.RowCount, newSheet.ColumnCount);//在表单中添加一个选择
            fpSpread1.Sheets[1].ClipboardCopy(fpSpread1.Sheets[1].GetSelection(0));//复制选择的项目到剪贴板               
            fpSpread1.Sheets[0].AddRows(fpSpread1.Sheets[0].RowCount, fpSpread1.Sheets[1].RowCount);//添加一行或多行到表单的数据模型
            fpSpread1.Sheets[0].SetActiveCell(fpSpread1.Sheets[0].RowCount - fpSpread1.Sheets[1].RowCount, 0);
            fpSpread1.ActiveSheet.ClipboardPaste(FarPoint.Win.Spread.ClipboardPasteOptions.All);
            int j = 0;
            for (int i = fpSpread1.Sheets[0].RowCount - fpSpread1.Sheets[1].RowCount; i < fpSpread1.Sheets[0].RowCount; i++)
            {
                fpSpread1.ActiveSheet.Rows.Height = newSheet.Rows[j].Height;
                j++;
            }
            fpSpread1.Sheets.Remove(newSheet);
            Spread_Excel.Sheets[0].SetRowPageBreak(fpSpread1.Sheets[0].RowCount + 1, true);//插入分页符
这是以前写的合并方式(不知道现在有没有新的合并方式)
错误问题1:合并时提示,所请求的剪贴板操作失败。
image.png380494689.png
错误问题2:无错误提示,也合并失败。下面没有东西。(在NewSheet里面有内容)
image.png263210143.png


image.png245838011.png

WindowsFormsApplication1.rar

13.49 MB, 下载次数: 174

21 个回复

倒序浏览
bingdaoice
中级会员   /  发表于:2019-9-17 15:51:13
沙发
本帖最后由 bingdaoice 于 2019-9-17 16:07 编辑

image.png240278929.png
把licenses.licx和引用删除后,再拖动控件到FROM窗体。自动添加引用后。运行程序提示这个。(删除-重新引用),已做了两次。
不知道再怎么处理了。
按照https://www.grapecity.com.cn/blogs/spread-cleartrialinfo这里面的方法,也做了三次。
一样提示上面的问题。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-17 17:15:50
板凳
您好,您的程序我这边运行都是正常的。那个异常是因为不同进程之间争用剪切板引起的,您可以搜索下那个错误,有相关解决办法。
授权的问题,如果操作无效,您可以重新安装下控件,点击修复,可能一些清理工具删除了默写控件信息。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-18 09:29:08
地板
我发的DEMO,你测试了正常?
你说是“不同进程之间争用剪切板引起的”,关键是我没开其它程序。
只开了VS,并调试程序。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-18 09:54:22
5#
本帖最后由 bingdaoice 于 2019-9-18 09:59 编辑


回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-19 11:09:36
6#
image.png201274718.png
可能后台某些进程
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-20 09:46:58
7#
本帖最后由 bingdaoice 于 2019-9-20 10:05 编辑

你好dexteryao ,能在spread中增加一个合并两个文档的接口吗?
我现在的项目。是需要把两个文档合并在一起的。
现在使用上面的代码来合并。报错的几率比较高。
又找不到解决方法(我查了论坛几乎所有关于剪贴板的问题,没有找到行之有效的解决方法)
还有就是没有专用合并接口,我怕这个问题,在客户机暴露的更频繁。因为不可能要求客户操作的时候,要把其它的软件都关闭,并且不做任何操作,才能不影响文档的合并(而且就算这样合并也会报错,机率还不低,我在开发机器上面操作,只开了一个360杀毒和VS来进行测试,都还是会报错)。
建议增加:1、合并文档接口
2、增加当前页函数
3、增加总共多少页的函数

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-21 15:39:51
8#
您说的这些在我们GCDocument for Excel 中都有,因为产品需求不太一样,Spread更主要是用户的操作和展示,GCExcel是您的需求,文档内容处理,有从其他workbook 复制range的功能。

对于spread winfrom, 还有个办法就是遍历单元格,取内容和样式还有合并单元格过来,等于自己实现一个复制的方法,不走剪切板的逻辑。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-23 09:00:33
9#
dexteryao 发表于 2019-9-21 15:39
您说的这些在我们GCDocument for Excel 中都有,因为产品需求不太一样,Spread更主要是用户的操作和展示,G ...

我已经用 spread做了很多开发的工作了
也有意向购买spread
能考虑增加上面的合并功能吗?
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-23 09:24:12
10#
“对于spread winfrom, 还有个办法就是遍历单元格,取内容和样式还有合并单元格过来,等于自己实现一个复制的方法,不走剪切板的逻辑。”

这个方法,请给个代码参考。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部