/// <summary> /// 读取Excel中数据 /// </summary> /// <param name=strExcelPath></param> /// <param name=tableName></param> /// <returns></returns> public static DataTable GetExcelTableByOleDB(string strExcelPath, string tableName) { try { DataTable dtExcel = new DataTable(); //数据表 DataSet ds = new DataSet(); //获取文件扩展名 string strExtension = System.IO.Path.GetExtension(strExcelPath); string strFileName = System.IO.Path.GetFileName(strExcelPath); //Excel的连接 OleDbConnection objConn = null; switch (strExtension) { case .xls: objConn = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + strExcelPath + ; + Extended Properties=\Excel 8.0;HDR=yes;IMEX=1;\); break; case .xlsx: objConn = new OleDbConnection(Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + strExcelPath + ; + Extended Properties=\Excel 12.0;HDR=yes;IMEX=1;\);//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串) 备注: HDR=yes;是说Excel文件的第一行是列名而不是数,HDR=No;正好与前面的相反。IMEX=1 如果列中的数据类型不一致,使用IMEX=1可必免数据类型冲突。 break; default: objConn = null; break; } if (objConn == null) { return null; } objConn.open(); //获取Excel中所有Sheet表的信息 //System.Data.DataTable schemaTable = objConn.GetoleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); //获取Excel的第一个Sheet表名 // string tableName1 = schemaTable.Rows[0][2].ToString().Trim(); string strsql = select * from [ + tableName + $]; //获取Excel指定Sheet表中的信息 OleDbCommand objCmd = new OleDbCommand(strsql, objConn); OleDbDataAdapter myData = new OleDbDataAdapter(strsql, objConn); myData.Fill(ds, tableName);//填充数据 objConn.Close(); //dtExcel即为excel文件中指定表中存储的信息 dtExcel = ds.Tables[tableName]; return dtExcel; } catch (Exception ex) { Console.WriteLine(ex.Message + \r\n + ex.StackTrace); return null; } }
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问C#视频教程!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。