在大部分的项目中,导入导出是一个极其普遍的功能。在前面的博文中,已提到过动态的导出资料,现在我们主要来谈一下导入的功能,这里的导入,是从EXCEL文件中读取数据源,在正式保存到数据库之前,可以对其结果进行预览,同时可以编辑后再保存到数据库里去。其实要说的东西不多,主要是实现起来还是有点复杂,下面提供我的方法,效果如下,如果大家有不同的方法,也希望提出。
1. 首先看一下导入的表格格式。这里的表头不允许做修改。数据必须从第三行开始。
2.选择导入的文件。
上传示意图。
3.上传后的预览效果图。
细心的朋友会问,为何导入的栏位这么少,在这里却显示了如此多的栏位? 这是串联到其它表获取的信息,方便用户直观了解信息。而这里的预览信息可以修改后保存。修改后的会红色标记着。如下图。
保存后,即可导入数据库里了。
这时查看数据库,数据相符。
而这一切基本不太需要更改后台的代码,只需要简单的配置一下XML文件即可。下面是XML的代码。
<?xml version="1.0" encoding="utf-8" ?> <EAI xmlns="urn:mapping-schema" from="ExcelFile" to="SqlServerDataBase"> <Source> <file range="A2" dataSourceName="Test.xls" name="Sheet1" titleLine="2" autoGenColumnTitle="false" handType="EAI.FileHandler.ExcelExport"> </file> </Source> <Target> <table name="KAL_USALRYDTL" dataSourceName="SqlServer" handType="EAI.DataBaseHandler.SqlServerImport"> <fields> <field name="SUSER" mapping="员工编号" primaryKey="true" canNull="false" dbType="Char" length="20" vaLock="true" nochange="true" reftable="LTKPAS_USER" valuefield="USERID" valuetitle="员工编号" displayfield="DESCRIPTION" displaytitle="姓名"> </field> <field name="SALRY2" mapping="工资项目类型" primaryKey="true" canNull="false" dbType="Char" length="2" vaLock="true" nochange="true"></field> <field name="DATE" mapping="实施日期" primaryKey="true" canNull="false" dbType="SmallDateTime" vaLock="true"></field> <field name="SALRY" mapping="工资项目" primaryKey="true" canNull="false" dbType="char" length="10" nochange="true" reftable="KAL_SALRYTP1" valuefield="SALRY" valuetitle="工资项目" displayfield="DESCR" displaytitle="工资项目说明" reftoptablefield="SALRYTP2" refptable="KAL_SALRYTP2" valuepfield="SALRY2" valueptitle="工资项目类型" displaypfield="DESCR" displayptitle="工资项目类型说明" > </field> <field name="QTY" mapping="金额" canNull="false" dbType="float" ></field> <field name="CMT" mapping="备注"></field> </fields> </table> </Target> </EAI>
本来是想多写点什么的,但实在是太忙了,就上个效果图,最近也少更新博客,特意来凑个数。让大家知道我还在IT届混饭吃。
如大家对这方面的功能有兴趣,可以加入Q群:(238916811) 一起讨论。