zoukankan      html  css  js  c++  java
  • 使用OleDb,将Excel导入DataSet

    本方法,将传入的Excel文件内所有的Sheet内的数据都填充入DataSet中。这是一个简单快捷的方法,不足之处是不适合带有格式复杂的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;
       }
      }

  • 相关阅读:
    结对编程附加题、团队作业2、团队作业3评分标准
    【评分】集美大学软件工程1413班工程项目管理结对编程1-模块化
    【评分】集美大学软件工程1413班工程项目管理第0次作业——读后感
    第13周-网络
    第12周-流与文件
    第11周-多线程
    第10周-异常与多线程
    第九周-异常
    第08周-集合与泛型
    第7周-集合
  • 原文地址:https://www.cnblogs.com/top5/p/1550886.html
Copyright © 2011-2022 走看看