.net 导入Excel2007


Office2007出来后,原本2003的链接字符串要改了。

 

Excel2003  使用   string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + exaddress + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";

Excel2007 使用    string sConnectionString= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + exaddress+ ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1';";

 

2007向下兼容。

 

但如果发现提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序” ,请下载2007 Office system 驱动程序:数据连接组件安装

http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

 

如果是64位系统,请在IIS,对应的应用程序池,“高级设置” 启用 32位应用程序。

否则,依然会提示上面的错误。

 

导入的完整代码如下:

 

public static DataTable GetExcelToDataTableBySheet(string FileFullPath, string SheetName)
    {
        //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
        string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"; //此连接可以操作.xls与.xlsx文件
        System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
        conn.Open();
        DataSet ds = new DataSet();
        System.Data.OleDb.OleDbDataAdapter odda = new System.Data.OleDb.OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", SheetName), conn);                    //("select * from [Sheet1$]", conn);
        odda.Fill(ds, SheetName);
        conn.Close();
        return ds.Tables[0];
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值