首页 新闻 会员 周边

把Excel表中的数据导入到数据库中,用.net程序实现的思路是什么?

0
悬赏园豆:5 [已解决问题] 解决于 2012-07-17 08:47

把Excel表中的数据导入到数据库中,用.net程序实现的思路是什么?

 

导入的时候有两种情况:

 

 

1.有一张表,除了第一行是表头不导入数据库以为,其他的单元格的数据都导入数据库;

 

举例:

编码

机构名

年份

单位类型

100002988

某某研究所

2011

国有

100000193

某某人才中心

2011

国有

100003462

某某信息中心

2011

国有

100006229

某某区卫生信息中心

2011

私有

100025145

某某中心体检站

2011

私有

这种表的导入方法有哪些呢?

 

 

2.有一张表,是一张二维表,导入的时候只导入表中某一列或者某几个单元格的数据,这个怎么实现呢?

指标

单位

2010年

参加项目的人数情况

 

 

         企业

人

 10

         事业

人

 21

         机关

人

 15

         其他

人

 30

如上表中导入的只是第三列的10、21、15、30这几个单元格所在的数据,这种情况要如何实现呢?

kdkler的主页 kdkler | 初学一级 | 园豆:154
提问于:2012-07-12 17:39
< >
分享
最佳答案
0

导入前提是模板,像楼主说的那种情况,你提供下载模板,让他们按你的模板去做数据,而不是要让系统去适应EXCEL。中国的EXCEL千千万,要适应你适应过来吗?这个一定要坚持。

我做过一个万能导入器,前提也是表是标准的二维表,第一列是列头。至少也得让客户达到这一步。

我实现过N个导入了,所以经验多一些:

简单步骤:用OleDbConnection导入EXCEL到DataTable=====》遍历DataTable生成插入SQL====》用事务把SQL执行。

简单步骤最多也就应付而已,我实际用的步骤是:

1,OleDbConnection导入EXCEL到DataTable,注意要想导入2003以上版本的EXCEL,要安装相应组件。

2,检查必要的列是否存在,就是你数据库中有列名叫A的列,EXCEL也得有相应的对应列(当然不是非也叫A)

3,检查数据类型数据:即数据表里如果A列是数字类型,EXCEL对应列也得检查,

4,检查业务数据:这跟据体业务相关,比如一个人员表中的部门编号为10000,部门表里面必须要有10000这个部门

5,这步导入,2,3,4步都过后,这步导入不能出错,出错了说明2,3,4没做好。

收获园豆:4
幽灵~ | 菜鸟二级 |园豆:268 | 2012-07-13 10:13
其他回答(4)
0

通过 OleDbConnection 从 Excel 查询出数据到 DataTable 中。然后再用 SqlConnection 把DataTable 中数据更新到数据库。

Launcher | 园豆:45050 (高人七级) | 2012-07-12 17:42

能不能说的详细点啊?

支持(0) 反对(0) kdkler | 园豆:154 (初学一级) | 2012-07-12 17:44
0

博问中有人问过这个问题:用C#如何将Excel导入到SQL Server

dudu | 园豆:22848 (高人七级) | 2012-07-12 18:11
0

1.第一张表用OleDbConnection读取EXCEL到DataTable里面, 然后遍历每行写Insert语句插入到数据库. 默认第一行为表头.

2.第二个表如果只有小量的文件,你就手动把第二行删除了,然后用上面的方法导入数据库. 如果有很多这样的文件. 那么在遍历DataTable的时候就从第二行开始,跳过第一行写Insert语句.

收获园豆:1
Kulle | 园豆:107 (初学一级) | 2012-07-13 14:28
0

给你一个实例

feixiaojian | 园豆:202 (菜鸟二级) | 2012-07-16 21:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册。