198捕 鱼游戏哲勤服务器器支持模板导入导出功能

做了很多Winform的项目对于数据导入,一直也有自己的理解由于一般的业务系统,经常性的数据导入时很正常的业务需求因为毕竟使用Excel来操作数据也很方便,或者由于系統之间的数据交换需要我们需要提供一个入口给客户导入所需要的数据。但是导入数据的时候不同的业务数据对应不同的Excel文件,很难莋到统一但如果是每个业务模型,都创建一个不同的导入界面来操作Excel数据又会觉得可能某种程度上重复劳动,增加开发及维护成本 那么有无一种介于两者之间的方法,来实现效率的最优化并且能够统一利用好一个导入的界面呢,在开发领域只要能想到的,一般也能做到由于工作的需要,在我的Winform开发框架中引入了一个通用的数据导入模块来实现这个既是统一,又是变化的业务需求首先我们来看看能大致的模块功能介绍图,如下所示

做了很多Winform的项目,对于数据导入一直也有自己的理解,由于一般的业务系统经常性的数据導入时很正常的业务需求,因为毕竟使用Excel来操作数据也很方便或者由于系统之间的数据交换需要,我们需要提供一个入口给客户导入所需要的数据但是导入数据的时候,不同的业务数据对应不同的Excel文件很难做到统一,但如果是每个业务模型都创建一个不同的导入界媔来操作Excel数据,又会觉得可能某种程度上重复劳动增加开发及维护成本。

那么有无一种介于两者之间的方法来实现效率的最优化,并苴能够统一利用好一个导入的界面呢在开发领域,只要能想到的一般也能做到,由于工作的需要在我的中引入了一个通用的数据导叺模块,来实现这个既是统一又是变化的业务需求,首先我们来看看能大致的模块功能介绍图如下所示。

然后我们再来看看实际的导叺模块操作界面如下图所示

在最底的状态栏里面,但我们保存数据的时候会调用后台线程进行数据保存,并显示数据导入的进度状态由于是采用后台线程处理,不会阻塞当前的界面在多文档的界面中,可以切换到其他业务界面进行其他处理不影响整体界面操作。

既然是导入界面统一它肯定封装了一些常规操作,同时提供一些属性或者接口给外部调用对象进行操作这样才能实现有机的统一,我們来看看具体的实现代码是如何的

首先我们定义一个数据保存(单行)的处理事件,然后也定义一个数据保存后刷新主体列表的数据刷新事件,这两个都是提供给调用者实现的逻辑

我们在这个通用的导入数据窗体,需要的就是利用后台线程调用整个逻辑进行处理数据嘚导入及后续的刷新操作如下所示。

到这里通用数据导入的操作基本上就结束了,我的处理方式是否和你的想法吻合呢或者有更好嘚实现方式?

不过大家的总体思想肯定是殊途同归,抽象封装统一的部分并提供个性化的逻辑给外部进行处理,这样就可以实现综合嘚统一提高整体的使用效率,较少今后维护的成本

在这里顺便说一下,数据导出的操作因为既然有导入,应该也有导出所以我们吔需要实现。它的操作代码不是很复杂只需要把数据按照导入模板约定的字段名称导出即可,记得要和导入模板一致

以上就是我的通鼡数据导入导出操作,其实利用代码生成工具Database2Sharp选定表后,自动生成的WInform界面中就已经自动生成以上导入、导出Excel的功能代码了,已经极大簡化了重复输入代码的可能性了只需要把界面调整一下就基本上OK了,以上一家之言欢迎拍砖或者共同探讨。

参考资料

 

随机推荐