找回密码
 立即注册

QQ登录

只需一步,快速开始

moriya

论坛元老

78

主题

189

帖子

4万

积分

论坛元老

积分
42318

活字格认证

[已处理] SetColumnMerge问题

moriya
论坛元老   /  发表于:2012-10-30 15:27  /   查看:5726  /  回复:7
版主好,
  如图

123.JPG (11.13 KB, 下载次数: 332)

7 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-30 20:25:00
沙发
moriya 你好

Spread 中通过SetColumnMerge设置单元格合并之后,选择时还是以一个单元格为单位,如果希望实现你的功能,可以使用AddSpanCell的方式来手动合并单元格。
回复 使用道具 举报
moriya
论坛元老   /  发表于:2012-10-31 11:34:00
板凳
dof 你好
  我用AddSpanCell试过了,可以用GetSpanCell来获取到合并的区域,但是有没有方法能够用代码选定指定行?
  IsSelected捕获到的那种
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-31 17:01:00
地板
可以通过 fpSpread1.ActiveSheet.AddSelection(0, 0, 1, fpSpread1.ActiveSheet.ColumnCount); 选择指定范围的单元格
回复 使用道具 举报
moriya
论坛元老   /  发表于:2012-11-1 09:32:00
5#
试过了,IsSelected获取不到
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-11-1 11:49:00
6#
如果你使用 fpSpread1.ActiveSheet.AddSpanCell(0, 0, 4, 1); 合并单元格,那么选中一个合并范围时,只有左上角的单元格的 IsSelected = true,这种情况需要使用以下代码来获取任意一个单元格的 IsSelected 状态:
  1.     private void Form2_Load(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.ActiveSheet.AddSpanCell(0, 0, 4, 1);
  4.     }

  5.     private void button1_Click(object sender, EventArgs e)
  6.     {
  7.         int row = Convert.ToInt32(textBox1.Text);
  8.         int col = Convert.ToInt32(textBox2.Text);

  9.         CellRange cr = fpSpread1.ActiveSheet.GetSpanCell(row, col);
  10.         bool selected = fpSpread1.ActiveSheet.IsSelected(row, col) || fpSpread1.ActiveSheet.IsSelected(cr.Row, cr.Column);

  11.         MessageBox.Show(string.Format("Cells({0},{1}) IsSelected = {2}",row,col,selected));
  12.     }
复制代码
回复 使用道具 举报
moriya
论坛元老   /  发表于:2012-11-2 11:07:00
7#
  1. bool selected = fpSpread1.ActiveSheet.IsSelected(row, col) || fpSpread1.ActiveSheet.IsSelected(cr.Row, cr.Column);
复制代码

这样啊....学习了....
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-11-2 17:41:00
8#
嘿嘿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部