使用oledb来读写数据库,每一个excel表相当于一个库,每一页相当于一个表。再有就是有行数上限,别超过了
哥们啊,能不能详细点啊,不是很清楚啊
@Trrecy: 和操作数据库是一样的啊,添加using System.Data.OleDB;,然后,怎么处理sql server 的,就怎么处理就好了
@sinhbv: 现在可以Excel的数据取出来,放在个DateSet里面了,但是发现有很多的空数据,就是Excel本身里面也只有几行的数据,但是DateSet却是获取的Excel所有的行,这个怎么排除掉里面的空行呢?
@Trrecy: 是这样的用oledb这种方法的话,只要是excel里被改动过的行,都会被认为是有数据的,所以会产生这种问题,解决方法是指定一个范围读取,或者在获取数据之后对数据进行一下过滤。
@sinhbv: 关键是怎么过滤呢,我现在取出来了,并把它放在一个DataRow里面了:
ExecleToDataSet():把Excel里的数据转换为DataSet,并返回DataSet
DataSet ds = ExecleToDataSet(serverpath, filename, IsXls);
DataRow[] dr = ds.Tables[0].Select();
怎么过滤呢?
@Trrecy: sql语句加一个where fieldname!='',试试吧
@sinhbv: 你的方法我试了,在转换成DateSet之前筛选不出来啊,能不能在DateSet转换之后,从DateSet里面筛选呢?
@Trrecy: 当然可以了,遍历一下,然后把空行给删了就行了
@sinhbv: 弱弱的问声,咋删呢?
@Trrecy: DataTable.Rows.Remove & DataTable.Rows.RemoveAt
@sinhbv: 呵呵,问题已经搞定,谢谢你啊
使用COM中的“Microsoft.Office.Interop.Excel
这个方法可以对excel增删改,并且可以实现你的需求,做多sheet表单,每一个sheet都可以是一个对象,相对来说操作excel比较简单
我查了下,这个Microsoft.Office.Interop.Excel程序集是需要安装的,如果我使用它里面的方法去操作Excel,开发的项目是Web形式,那么,当用户通过客户端去导入导出Excel,如果他们本机上没有这个工具集,是不是就会报错啊?
@Trrecy:
必须安装对应的office版本
楼上正解,可以参考~