找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice
中级会员   /  发表于:2019-9-23 09:34:57
11#
或者说给一个能有效解决“所请求的剪贴板操作失败。"的方法
我们的项目马上要进行评审了,现在卡在这个地方。不敢提交评审啊。急啊
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-24 21:59:05
12#
这个异常是framework抛出的,spread也控制不了,由于剪贴板是系统的公共资源,当有多个程序同时访问时,会引发异常。
现在能做的就是try catch,用  Clipboard.Clear() 清理下剪切板再重试一次。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-25 22:21:13
13#
dexteryao 发表于 2019-9-24 21:59
这个异常是framework抛出的,spread也控制不了,由于剪贴板是系统的公共资源,当有多个程序同时访问时,会 ...

我们公司已经用 spread做了很多开发的工作了,也有意向购买spread
1、能考虑增加合并功能吗?
2、“对于spread winfrom, 还有个办法就是遍历单元格,取内容和样式还有合并单元格过来,等于自己实现一个复制的方法,不走剪切板的逻辑。”这个方法,请给个参考代码。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-26 01:27:34
14#
因为GCExcel已经有了这个功能,作为不同产品,Winfrom加的可能性不大。
我可以跟你准备个Demo,不过需要些时间,预计下周一之前提供给您
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-26 08:48:35
15#
本帖最后由 bingdaoice 于 2019-9-26 08:54 编辑
dexteryao 发表于 2019-9-26 01:27
因为GCExcel已经有了这个功能,作为不同产品,Winfrom加的可能性不大。
我可以跟你准备个Demo,不过需要些 ...

非常感谢版主在这么晚还给予回复。
GrapeCity Documents我查看了一下。
我如果要使用的并部署的话,价格最少需要48700,这个价格太高了,承受不了。非常感谢版主为我提供DEMO,解决问题。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-29 16:02:19
16#
请参考如下代码
  1.             var sheet1 = fpSpread1.Sheets[0];
  2.             var sheet2 = fpSpread1.Sheets[1];

  3.             int startRow = 10, copyRowCount = 20, copyColumnCount = 10 ;
  4.             sheet2.AddRows(0, startRow);

  5.             for(int i = startRow; i < startRow + copyRowCount; i++)
  6.             {
  7.                 for (int j = 0; j < copyColumnCount; j++)
  8.                 {
  9.                     // copy span;
  10.                     var spans = sheet2.GetSpanCell(i, j);
  11.                     if (spans != null && spans.Row == i && spans.Column == j)
  12.                     {
  13.                         sheet1.AddSpanCell(i, j, spans.RowCount, spans.ColumnCount);

  14.                     }

  15.                     var cell = sheet2.Cells[i, j];
  16.                     //copy formula and value
  17.                     if (!String.IsNullOrEmpty(cell.Formula))
  18.                     {
  19.                         sheet1.SetFormula(i, j, cell.Formula);
  20.                     }
  21.                     else
  22.                     {
  23.                         sheet1.SetValue(i, j, cell.Value);
  24.                     }

  25.                     var style2 = sheet2.GetStyleInfo(i, j);
  26.                     if (style2 != null)
  27.                     {
  28.                         style2 = sheet2.GetStyleInfo(i, j, new StyleInfo());
  29.                         sheet1.SetStyleInfo(i, j, style2);
  30.                     }
  31.                 }
  32.             }
复制代码
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-9-30 16:02:18
17#
使用了版主的代码。出现了新的问题。
复制过去的有公式的单元格,在合并了之后的文档未更新到对应的单元格。
公式无法正确计算。不知道公式又要怎么处理?才能达到更新到对应单元格。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-9-30 17:12:32
18#
我的代码里有关于公式的处理,先判断单元格是否有公式,如果有复制公式,否则复制值。
一定要先插入行,让公式进行调整后再复制。
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2019-10-8 18:10:12
19#
请问如何复制单元格的图片呢?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-10-9 11:11:26
20#
如果是浮动图片,可以参考如下代码:

  1.             foreach(FarPoint.Win.Spread.DrawingSpace.PSObject shape in sheet2.DrawingContainer.ContainedObjects)
  2.             {
  3.                 if(shape!=null && shape.BackgroundImage != null)
  4.                 {
  5.                     var newshape = shape.Clone() as FarPoint.Win.Spread.DrawingSpace.PSShape;
  6.                     sheet1.AddShape(newshape);
  7.                 }
  8.             }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部