• 使用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;
       }
      }

  • 相关阅读:
    adb在查询数据库中遇到的问题及解决【1】
    软工人3月9日学习
    软工人3月8日学习
    Android studio ListView的数据更新问题
    python将爬取数据存储到文本文件
    Android studio ListView的数据更新问题
    Android studio ListView之checkbox错位问题解决
    阅读笔记《人月神话》1
    android打包生成apk
    线性布局和相对布局
  • 原文地址:https://www.cnblogs.com/top5/p/1550886.html
Copyright © 2020-2023  润新知