找回密码
 立即注册

QQ登录

只需一步,快速开始

xiafu568

初级会员

41

主题

84

帖子

291

积分

初级会员

积分
291

活字格认证微信认证勋章

xiafu568
初级会员   /  发表于:2013-9-10 16:56  /   查看:7637  /  回复:7
Spread支持与excel数据相互复制粘贴,分别有没有事件进行控制
比如说我新建一个表,里面没有一行数据
然后我从excel中复制几行数据,粘贴到spread的sheet中
spread有没有事件判断复制的行数,以便我进行处理

反过来,如果我在spread的sheet中加入contextmenu实现“复制”功能应该怎么实现

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-9-10 18:40:00
沙发
回复 1楼xiafu568的帖子

1.“spread有没有事件判断复制的行数” 的问题正在调查中。
2.第二个问题实现方法如下:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             System.Windows.Forms.ContextMenu cm = new ContextMenu();
  4.             MenuItem mi=new MenuItem();
  5.             mi.Text="复制";
  6.             mi.Click+=new EventHandler(mi_Click);
  7.             cm.MenuItems.Add(mi);


  8.             this.fpSpread1.ContextMenu = cm;
  9.         }

  10.         void mi_Click(object sender, EventArgs e)
  11.         {
  12.             CellRange cr=this.fpSpread1.Sheets[0].GetSelection(0);
  13.             this.fpSpread1.Sheets[0].ClipboardCopy(cr);
  14.         }
复制代码
回复 使用道具 举报
xiafu568
初级会员   /  发表于:2013-9-11 17:36:00
板凳
回复 2楼iceman的帖子

第一个问题还有没有解决办法
换句话说
只要能读到剪切板中的数据就行
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-11 17:57:00
地板
回复 3楼xiafu568的帖子

xiafu568 你好,

这个问题目前我还没与找出好的解决办法。
在我理解,从 Excel 中复制数据,需要从 Clipboard 类中获取。例如 GetDataObject 或 GetData() 等方法。
  1. var dataObj = Clipboard.GetDataObject();
复制代码


MSDN链接:http://msdn.microsoft.com/zh-cn/ ... orms.clipboard.aspx
回复 使用道具 举报
xiafu568
初级会员   /  发表于:2013-9-12 12:31:00
5#
回复 4楼iceman的帖子

问题解决了,非常感谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-12 13:37:00
6#
回复 5楼xiafu568的帖子

真棒~可以把方法共享给大家吗?
回复 使用道具 举报
xiafu568
初级会员   /  发表于:2013-9-13 15:04:00
7#
回复 6楼iceman的帖子

就是按你给的方法读到的数据,然后用split分行,然后就是填数据了
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-9-13 15:48:00
8#
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部