C#中使用Spread60全攻略.doc_第1页
C#中使用Spread60全攻略.doc_第2页
C#中使用Spread60全攻略.doc_第3页
C#中使用Spread60全攻略.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#中使用Spread6.0全攻略 (一)在C#中加载Spread6.0nmd002版C#加载Spread6.0全攻略首先,在引用里加载Spread6.0的Dll文件。(如果你先安了C#,再安的Spread有可能不用加载,是自动引用的。)其次,在控件箱里选择一个准备放置Spread控件的选项卡,在里面点击右键,选择添加/移除项,如果你的机器不够快,请先上厕所。然后,在对话框的COM组件里找FarPoint Spread 6.0,FarPoint Spread 6.0 (OLEDB),FarPoint Spread Preview 6.0,FarPoint Spread Preview 6.0 (OLEDB),这四个选项打钩钩。最后,点确定。这样,在你的控件箱的当前选项卡里就会出现Spread的四个控件,其他用法一如在VB里的使用。最后,我要强调的是,Spread6.0本身虽然兼容C#,但是并不是为C#而设计的,虽然在C#中能够使用,但是却要几经变换,诸多弯路,并不比在VB下开发容易,反而显得更格格不入和困难。除非客户强烈要求,不然还是不要在C#下用它了!上面的内容和下面的内容都是本人在C#的Form应用里写过的,Web应用没试过。请根据需要自行选用,另外请在别处转帖时,保留作者nmd002的署名,谢谢!(二)在C#中使用Spread6.0nmd002版C#使用Spread6.0全攻略有些人会说,在C#里用Spread有什么了不起,不是跟VB里用一样简单吗?能说这种话的人一般会有两种情况:一种人从没做过,想当然地说;另一种人做过很多,必然这么说。没错,原理是一样的,根本没有出入。但是实际做起来,就是两回事了。“C#中使用Spread的最大问题不是Spread的使用方法有所改变,而是全新类型的结果集(DataSet)的数据如何在Spread中显示出来。”真正用Spread做过项目的人都知道,Spread主要不是用来绑定数据,而是用来显示和接收数据的,因为数据的输入大部分都需要校验,而绑定是一种在校验时缺乏灵活性的手段,不利于数据的安全。那么C#中的结果集和VB里的结果集有什么不同呢?C#里的结果集是以XML的形式保存在对象中的,而VB的结果集则是以数组的形式保存在对象中的。 172-32-1176 White Johnson 408 496-7223 10932 Bigge Rd. Menlo Park CA 94025 true 213-46-8915 Green Marjorie 415 986-7020 309 63rd St. #411 Oakland CA 94618 true . 23 这就是将某个DataSet中的内容转换后显示出来的实例字串,其中凡是标签的就是这个结果集中第一个表的记录内容,而标签内的内容就是这个结果集中另外一个表的记录内容。由此可见,DataSet的内容是保存在一个以标签定义的XML字串中的。不同的表用不同的名称作标签来区别,每个表的每条记录都以各自的字段名为标签,标识自己的字段值。所以,如果你想做到:把指定表中的值读出来,写入Spread的单元格中,只要学会在DataSet中取出指定表的全部记录,并将值写入对应单元格即可。本人实践后成功的方法有二:、双循环直接从DataSet中取值填入对应的Spread单元格。axvaSpread1.MaxRows = rs.Tablestablename.Rows.Count;axvaSpread1.MaxCols = rs.Tablestablename.Columns.Count;axvaSpread1.Row=1;axvaSpread1.Col=1;axvaSpread1.Row2=axvaSpread1.MaxRows;axvaSpread1.Col2=axvaSpread1.MaxCols;int i,j;for(i=1;i=rs.Tablestablename.Rows.Count;i+)for(j=1;j=rs.Tablestablename.Columns.Count;j+)axvaSpread1.Row=i;axvaSpread1.Col=j;axvaSpread1.Value =rs.Tablestablename.Rowsi-1j-1.ToString(); /本例中rs为DataSet对象,axvaSpread1为VaSpread对象实例。/tablename为指定表名。、通过取得DataSet的XML字串,并将其转化为一张二维表(用“水平制表符”区分字段,用“换行符”区分记录的大字串),将其作为VB的结果集在剪贴板中的考贝内容,直接写入Spread对象。axvaSpread1.MaxRows = rs.Tablestablename.Rows.Count;axvaSpread1.MaxCols = rs.Tablestablename.Columns.Count;axvaSpread1.Row=1;axvaSpread1.Col=1;axvaSpread1.Row2=axvaSpread1.MaxRows;axvaSpread1.Col2=axvaSpread1.MaxCols;string xmlstr=rs.GetXml().ToString();string steatstr=;/生成一个记录节点的替换串/使用正则表达式转换XML为axvaSpread1.Clip可接受格式的字串xmlstr=Regex.Replace(xmlstr, nrvt*, );/去掉串中所有的空格以外的无用空白符:回车,换行,水平制表符,垂直制表符。有多少去多少xmlstr=Regex.Replace(xmlstr, , );/去掉DataSet所生成XML串的:固定的起始标签和固定的结束标签xmlstr=Regex.Replace(xmlstr, , );/去掉XML串的全部起始标签:,.xmlstr=Regex.Replace(xmlstr, steatstr, r);/将指定表记录的结束标签换成换行符: = rxmlstr=Regex.Replace(xmlstr, , t);/将其它内容的结束标签换成水平制表符: = taxvaSpread1.Clip=xmlstr;/数据内容置入Spread对象/Regex是个正则对象,其它同上。其实根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论