找回密码
 立即注册

QQ登录

只需一步,快速开始

workspak

注册会员

3

主题

7

帖子

176

积分

注册会员

积分
176

活字格认证

最新发帖
workspak
注册会员   /  发表于:2015-3-6 17:02  /   查看:6919  /  回复:5
RT:
我项目功能流程如下:
1、加载Excel文件,将文件的内容加载到Spread_Sheet中
2、点击按钮触发绑定事件,后台获取Spread_Sheet中第二行的所有列的Text和坐标,
3、根据坐标和列的Text进行构造对象列表


问题:
后台咋获取Spread_Sheet的某一行的数据和坐标?

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-3-6 18:29:00
沙发
回复 1楼workspak的帖子

从你的描述中,得知你需要获取Spread的某一行的数据和坐标,推断你需要获取的是spread的行。
但无法得知你能传入的数据是什么,即你是需要通过什么样的数据获取你需要的行。

如果是直接获取,直接使用this.fpSpread1.Sheets[0].Rows[1]就可以获取到该行。

如果是已知鼠标坐标,可以通过Spread.HitTest方法将坐标转换为具体的行列信息。
比如在MouseMove的时候,输入spread是第几行第几列。
  1. private void fpSpread1_MouseMove(object sender, MouseEventArgs e)
  2.         {
  3.           FarPoint.Win.Spread.HitTestInformation info=  this.fpSpread1.HitTest(e.X, e.Y);
  4.           this.Text = info.ViewportInfo.Row.ToString() + "," + info.ViewportInfo.Column.ToString();
  5.         }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
workspak
注册会员   /  发表于:2015-3-8 20:58:00
板凳
回复 2楼Alice的帖子

你说的这个我明白,我的需求是,我要输入一个行号,然后this.fpsheet.Rows[我的行号]获取该行的数据,哪怕返回的是一个object集合都行,因为我项目中需要读取到这一行的所有的有值得单元格,然后进行下一步操作
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-9 10:46:00
地板
回复 3楼workspak的帖子

那么你已经知道的是什么数据呢?你需要输入的行号是已知还是未知的。如果是已知的,this.fpsheet.Rows[行号]就可以获取改行。
如果是未知的,你的问题是在于不知道如何获取这个行号。
我这里不知道你究竟想通过什么获取这个行号,比如你是鼠标点击了某一行,想在后台获取行号,还是有某些判断条件。
我这里来分析下。

假设你是通过鼠标点击某一行后,想获取行号,那么你可以通过鼠标相关事件获取行号,比如MouseDown事件,然后利用spread的HitTest方法。具体代码参考2楼给出的代码。

假设你是想获取高亮选择行的行号,那么就可以使用GetSelection方法获取到选择行的CellRange,然后获取行号。
比如:

  1. int row=  this.fpSpread1.ActiveSheet.GetSelection(0).Row;
复制代码


如果你和上面的情况都不同,那么请你描述你是做了什么操作后,想获取spread的行号。然后我帮你看看怎么实现。

另外,如果你已经是知道以上的属性,需要获取是单元格的数据。那么可以使用getValue方法,可以获得单元格的值。
  1. spread.Sheets[0].GetValue(0, 0);
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
workspak
注册会员   /  发表于:2015-3-13 11:20:00
5#
谢谢专家的解答,我的问题已经解决了,
我获取当前第二行的标题,列的个数是这么处理的 int colCount = this.fpSpread1_Sheet1.NonEmptyColumnCount;
不过,我总感觉这么做不合适,这是找的整个Sheet里不是空的最长的列数
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-3-13 15:17:00
6#
回复 5楼workspak的帖子

你好。
根据你的描述,你对该问题的解决方案并不是很满意。
由于我对你的逻辑并不是很清楚,虽然之前你描述了一些,但理解上有偏差。这次你又提到了非空列。如果你能提供demo,我可以帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部