使用OleDb,将Excel导入DataSet
生活随笔
收集整理的這篇文章主要介紹了
使用OleDb,将Excel导入DataSet
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本方法,將傳入的Excel文件內(nèi)所有的Sheet內(nèi)的數(shù)據(jù)都填充入DataSet中。這是一個簡單快捷的方法,不足之處是不適合帶有格式復(fù)雜的Excel文件。
using?System.Data;using?System.Data.OleDb;
using?System.Data.Odbc;
public?DataSet?GetDataSetFromExcel(string?filePath)
??{
???string?strConn??=?"Provider=Microsoft.Jet.OleDb.4.0;";?
???strConn?+=?"data?source="?+?filePath?+?";";?
???strConn?+=?"Extended?Properties=Excel?8.0;";??
???//strConn?+=?"HDR=Yes;IMEX=1";
???OleDbConnection?objConn?=?new?OleDbConnection(strConn);
???ArrayList?SheetNameList?=?new?ArrayList();
???
???try
???{
????objConn.Open();
????DataTable?dtExcelSchema?=?objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new?object[]{null,null,null,"TABLE"});
??
????string?SheetName="";
????for(int?i=0;i<dtExcelSchema.Rows.Count;i++)
????{
?????SheetName?=?dtExcelSchema.Rows[i]["TABLE_NAME"].ToString();
?????SheetNameList.Add(?SheetName?);?
????}
???}
???catch(Exception?ex)
???{
????throw?ex;
???}
???finally
???{
????objConn.Close();
???}?
????????????DataSet?dsExcel?=?new?DataSet();
???try
???{
????string?strSql?=?"";
????
????for(int?i=0;?i<SheetNameList.Count;?i++)
????{
?????//string?strSql??="select?*?From?[Sheet1$e5:g23]";?
?????//string?strSql??="select?[F1],[F2],[F3]?From?[Sheet2$3:100]?";???
?????strSql?=?"select?*?from?["?+?(string)SheetNameList[i]?+?"]";
?????OleDbDataAdapter?oleExcelDataAdapter?=?new?OleDbDataAdapter(strSql,?objConn);
?????DataTable?dtExcel?=?new?DataTable((string)SheetNameList[i]);
?????oleExcelDataAdapter.Fill(dtExcel);
?????dsExcel.Tables.Add(dtExcel);????????
????}
????return?dsExcel;
???}
???catch(Exception?ex)
???{
????throw?ex;
???}
??}
轉(zhuǎn)載來自:http://blog.csdn.net/fangxinggood/archive/2005/06/18/397315.aspx
轉(zhuǎn)載于:https://www.cnblogs.com/greatandforever/archive/2009/07/22/1528274.html
總結(jié)
以上是生活随笔為你收集整理的使用OleDb,将Excel导入DataSet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下Memcached的安装
- 下一篇: Burrard 大桥