首页 新闻 会员 周边 捐助

.NET中Excel导入导出问题

0
悬赏园豆:5 [已解决问题] 解决于 2012-05-15 11:30

 需求描述:

       1.要求能够把Excel导入到数据库中,需要注意的就是Excel表有多页,需要导入的只是其中的某页。

       2.能够把数据库中的某张表,或者是某个查询得到的结果导出到一个Excel文档,并且可以根据不同的内容在Excel中分页显示。

 我之前没有做过Excel的导入导出操作,不知道从哪下手,各位兄弟姐妹们,帮帮忙啊,给提个醒,谢谢哈。。。

赵小猫的主页 赵小猫 | 初学一级 | 园豆:102
提问于:2012-05-08 09:56
< >
分享
最佳答案
0

使用oledb来读写数据库,每一个excel表相当于一个库,每一页相当于一个表。再有就是有行数上限,别超过了

收获园豆:5
sinhbv | 老鸟四级 |园豆:2579 | 2012-05-08 10:02

哥们啊,能不能详细点啊,不是很清楚啊

赵小猫 | 园豆:102 (初学一级) | 2012-05-08 10:39

@Trrecy: 和操作数据库是一样的啊,添加using System.Data.OleDB;,然后,怎么处理sql server 的,就怎么处理就好了

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-08 10:45

@sinhbv: 现在可以Excel的数据取出来,放在个DateSet里面了,但是发现有很多的空数据,就是Excel本身里面也只有几行的数据,但是DateSet却是获取的Excel所有的行,这个怎么排除掉里面的空行呢?

赵小猫 | 园豆:102 (初学一级) | 2012-05-10 11:10

@Trrecy: 是这样的用oledb这种方法的话,只要是excel里被改动过的行,都会被认为是有数据的,所以会产生这种问题,解决方法是指定一个范围读取,或者在获取数据之后对数据进行一下过滤。

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-10 11:27

@sinhbv: 关键是怎么过滤呢,我现在取出来了,并把它放在一个DataRow里面了:

ExecleToDataSet():把Excel里的数据转换为DataSet,并返回DataSet

DataSet ds = ExecleToDataSet(serverpath, filename, IsXls);
DataRow[] dr = ds.Tables[0].Select();

怎么过滤呢?

赵小猫 | 园豆:102 (初学一级) | 2012-05-10 16:13

@Trrecy: sql语句加一个where fieldname!='',试试吧

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-10 16:18

@sinhbv: 你的方法我试了,在转换成DateSet之前筛选不出来啊,能不能在DateSet转换之后,从DateSet里面筛选呢?

赵小猫 | 园豆:102 (初学一级) | 2012-05-14 10:06

@Trrecy: 当然可以了,遍历一下,然后把空行给删了就行了

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-14 10:08

@sinhbv: 弱弱的问声,咋删呢?

赵小猫 | 园豆:102 (初学一级) | 2012-05-14 10:40

@Trrecy: DataTable.Rows.Remove & DataTable.Rows.RemoveAt

sinhbv | 园豆:2579 (老鸟四级) | 2012-05-14 10:55

@sinhbv: 呵呵,问题已经搞定,谢谢你啊

赵小猫 | 园豆:102 (初学一级) | 2012-05-15 11:30
其他回答(3)
0

使用COM中的“Microsoft.Office.Interop.Excel

这个方法可以对excel增删改,并且可以实现你的需求,做多sheet表单,每一个sheet都可以是一个对象,相对来说操作excel比较简单

diorlv2010 | 园豆:188 (初学一级) | 2012-05-08 10:05

我查了下,这个Microsoft.Office.Interop.Excel程序集是需要安装的,如果我使用它里面的方法去操作Excel,开发的项目是Web形式,那么,当用户通过客户端去导入导出Excel,如果他们本机上没有这个工具集,是不是就会报错啊?

支持(0) 反对(0) 赵小猫 | 园豆:102 (初学一级) | 2012-05-08 10:38

@Trrecy: 

必须安装对应的office版本

支持(0) 反对(0) diorlv | 园豆:259 (菜鸟二级) | 2012-05-11 23:23
0

楼上正解,可以参考~

Philomena | 园豆:154 (初学一级) | 2012-05-08 10:18
0

推荐使用NPOI,我一直用非常好!无需安装Office组件

加百力 | 园豆:533 (小虾三级) | 2012-05-08 11:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册