详解如何利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入

摘要:
本文主要介绍如何使用FarPointSpread表控件构造Winform的Excel表接口输入。本文主要针对如何使用FarPointSpread表控件来保存和显示类似于Excel界面的丰富数据,并希望在使用过程中的一些经验对Winform Excel数据输入和显示的开发有帮助。

我们先来简单了解一下WinForm和FarPoint,WinForm是·Net开发平台中对Windows Form的一种称谓。而FarPoint是一款模拟EXCEL的控件。它可以根据用户的要求实现很大部份的EXCEL操作,且包括多个子表、表格风格定义、公式计算、排序、分组等等都可以实现。本文主要是介绍利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入。

  在Winform界面中以类似Excel表格界面中录入相关的数据,其中界面需要录入图片信息,基础信息,列表信息等,综合这些后界面的效果就如下面这样。而本文主要针对如何利用FarPoint Spread表格控件实现类似Excel界面丰富数据的保存及显示,以及希望在使用过程中的一些经验对大家在开发Winform的Excel数据录入和显示方面的开发有一定帮助。

Winform的Excel数据录入和显示

  根据上面的界面分类能够看到,这个界面大概能怪划分的数据类型分别是基础字段数据、多行的列表数据、图片数据和备注信息的显示录入。那么下面我们根据分类介绍如何实现这些功能。

  1、类似Excel的列表总体界面设计

  首先,在这个列表中需要在Winform的界面中进行设计拖入一个Farpoint控件到Winform界面上后,然后设置好布局等属性,接着在右键菜单上启动Spread Designer,这样就可以设计相关的Excel样式表格的内容了。

Spread Designer

  注意:一般情况下,这个界面是在窗体中设计的,当然你的内容可以通过拷贝的方式复制过来,从Excel文档中复制粘贴过来,如果从效果上来看是一样的。不过,虽然Farpoint Spread控件提供了一个另存为Xml文件的操作,并且可以通过API,Open一个XML文件,不过Open的XML文件后,好像内容不能进行修改的,而且类型CellType也是Null(空值)的,所以如果要在一个窗体上动态加载布局是没办法实现的。不过对于开发来说,我们在设计时就把Excel样式的列表界面设计好,这也是一个不错的选择。

成衣工艺单

  2、下拉列表的绑定

  大多数情况下我们为了输入的便利性,我们会选择在Excel列表中通过下拉列表方式输入内容,如此便可以提高速度和用户体验,但这些内容必须是通过数据库内容进行绑定的,Farpoint Spread控件通过输入很多的内容且包括ComoBox类型数据来绑定下拉列表的数据。如下所示。

ComoBox类型

  当我们下拉类型被指定后,Excel列表的显示方式随之变化,比如像下面一样来显示。

Excel列表

  上面打上对勾的就我们下一步需要绑定列表数据的列表了,绑定列表的数据也不麻烦,但是需要明确Cell的序号,绑定给他数据源就可以了,可实际上的话,经常要数着Cell的行列号上的数字是非常费心神且很不方便。

Cell的序号

  对于BindDictItems代码,我使用了扩展方法,所以这个我们是能通过对象直接调用,具体的函数代码如下所示,这个就是调用字典业务类获取数据,但是需要给Items属性赋值,注意其中的Edittable最好选择为true,否则它只会类似于DropdownList那样只显示里面列表的内容。

Items属性

下拉列表控件

  3、如何构造界面自定义录入

  为了能够很方便的输入内容,在对于一些例如弹出框选择内容,图片编辑,备注内容(很长的时候)的编辑来说,我们通常是通过自定义界面来录入比较好,比较Excel样式的界面,录入单元格很小,有时候也实现不了的。所以通过制定控件单元格的单击事件,用来处理特殊录入信息的操作。

录入信息操作

图片操作

  下面是展开界面部分内容给大家看看,如下面所示:

展开界面

  例如,对于下拉列表内容,我们需要进行弹出式选择内容,如下界面所示。

下拉列表内容

  对于图片单元格,我们单击就可以弹出下面的窗体才能够很方便编辑或者查看。

图片编辑

  对于备注内容,我们让他弹出一个窗体,更好展现和编辑。

编辑内容

  4、数据的显示和保存

  在显示普通的主表数据字段这方面是非常的简单的,就是把内容赋值给对应的单元格Text属性即可,如下所示。

内容赋值

     当我们需要保存的时候,就是把对应的内容保存到实体类进行数据保存操作即可。

内容保存

  但是在数据比较多的时候,我们需要把内容保存分开,各个函数负责不同的部分即可,在主表保存后继续保存其他部分的内容,例如红色部分就是其他部分的保存操作。

更多数据

  例如工艺过程是一个列表数据,我们在保存的时候是需要指定行列的属性进行操作,而且我们添加一个Seq的序列号,这样是用来保存内容的顺序,这样加载的时候,我们就按照这个循序进行加载显示,否则会出现问题。 

属性操作

  其中GetProcess函数,这个就是一个列表中查找对应顺序的内容,如果有,那么我们需要更新这个对应顺序的内容,否则我们认为它是新的数据,这样就新增到数据库中,所以最后用了InserUpdate就是这个道理。其中GetProcess函数逻辑代码如下所示。

重新调整顺序号

  另外有一点是需要注意的是有些单元格是合并列的,所以它的行列号一定要注意,因为有些地方可能需要跳行。

合并单元格

  5、Excel表格的数据打印及导出。

  对于使用Farpoint Spread的空间,我们能够非常方便地对里面的内容进行打印或者导出Excel,重要的是代码不繁琐,如下所示。

导出Excel导出Excel代码

  我们导出的效果和界面显示的效果基本上一致的,而且图片等特殊的格式,也是正常保留在Excel里面,从感觉上来说是非常的不错的。

  那么在最后我们附上这个系统的一些截图作为补充了解。

导出的效果图

     到这里,我们基本上是介绍完了利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入的内容了,在上文我们通过了五个部分来介绍的,一是类似Excel的列表总体界面设计的基本内容,二是下拉列表的绑定,三是如何构造界面自定义录入,四是数据的显示和保存,五是Excel表格的数据打印及导出。

免责声明:文章转载自《详解如何利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LoadRunner 11 安装破解前端优化-如何计算白屏和首屏时间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用xlwings批量打开同一文件夹下的N多EXCEL表格

批量找开同一文件夹下的N多excel表格会用到两个模块,OS和xlwings。OS是对文件夹的操作。xlwings是对excel的调用。 import osimport xlwings as xwfile_path = '/Users/hugua/Desktop/python_practise'file_list = os.listdir(file_pat...

Winform应用的多语言设置

VS 提供了一种简单的方式来为应用设置多种语言——resx文件。下面演示具体的操作步骤。 1.首先新建 Winform 项目,向其添加控件,并命名 2.将 Form1 的 Localizable 属性设为 true, 设置该属性后,.net 将根据不同的语言,为应用程序生成不同的资源文件(resx文件) 3.将 Form1 的 Language 属性修改为...

python 将文本txt 转换 excel(xls)

现在有很多工具可以将mysql数据库中数据直接dump为excel表格模式,例如,navicat,sqlyog等,但是个人认为最好用是navicat,但是navicat需要收费。 通过select into outfile 可将数据导出为.txt格式,然后再通过python脚本将.txt格式转换成xls格式。 MySQL导出文本语句: SELECT * F...

把页面的Table直接输出到Excel文件中

有个需求是统计的时候,为生成的html表格提供导出功能,但是这样导出Excel不会显示自身的表格 影响美观,但是excel会显示html的css样式,这里可以通过处理行对象的方式进行导出,但是处理起纵向合并比较麻烦,这里待续! 1 String newStr = new String(name.getBytes(), "ISO8859_1"); 2 res...

使用EasyExcel导出图片及异常处理

1、使用String类型导出   定义自己的Converter,不使用默认的StringImageConverter 如果图片路径为空或者图片路径是错误的,返回相应的内容 import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream;...

导出EXCEL出现折行问题

  在项目中,导出EXCEL时,由于数据库字段中存在换行字符(可能在我们查询时仅仅可以看到的是空字符),这样在导出到EXCEL时,会出现折行显示,比如我们导出EXCEL时,从表中导出的备注(NOTE)字段里由于有换行字符,所以在我们导出的EXCEL中会出现一行数据从备注这里折成了2行,解决方法就是在数据库查询时,把这里的备注字段的换行字符给替换掉,如:RE...