首页 新闻 搜索 专区 学院

把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 | 园豆:45045 (高人七级) | 2012-07-12 17:42

能不能说的详细点啊?

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

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

dudu | 园豆:38804 (高人七级) | 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
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册