zoukankan      html  css  js  c++  java
  • excel 读入 dataset

        public DataSet GetDataSetFromExcel(string strFileName)
            
    {
                OleDbConnection objConn
    =null;
                DataSet data
    =new DataSet();
                
    try
                
    {
                    
    string strConn= "Provider=Microsoft.Jet.OleDb.4.0;" + "data source="+strFileName+ ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
                    objConn
    =new OleDbConnection(strConn);
                    objConn.Open();
                    DataTable schemaTable 
    = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
                    
    string tableName=schemaTable.Rows[0][2].ToString().Trim();            
                    OleDbDataAdapter sqlada
    =new OleDbDataAdapter();
                    
    foreach(DataRow dr in schemaTable.Rows)
                    
    {
                        
    string strSql= "Select * From ["+dr[2].ToString().Trim()+"]";
                        OleDbCommand objCmd
    =new OleDbCommand(strSql, objConn);                    
                        sqlada.SelectCommand
    =objCmd;
                        sqlada.Fill(data,dr[
    2].ToString().Trim());
                    }

                    objConn.Close();
                }

                
    catch
                

                    objConn.Close();
                    
    throw;
                }

                
    return data;
            }

    Microsoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键

    字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程

    序始终将“互混”数据列作为文本读取。注意

    http://msdn2.microsoft.com/zh-cn/library/ms254978.aspx
    默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须

    将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性

    添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定

    HDR=No;提供程序将字段命名为 F1、F2 等等。因为扩展属性字符串现在包含了多个值,所以必须用引号

    单独包起来,如下例所示(为便于看清楚,添加了额外的空格)。

    如第1个中hdr=no的话,where时就会报错

    ConnStr ="Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\Inetpub\wwwroot\test.xls;          

                    Extended Properties='Excel 8.0;HDR=No;IMEX=1'"

    Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1
      IMEX=1就是指混合型转换为文本
    select * from
    OPENROWSET(’MICROSOFT.JET.OLEDB.4.0′
    ,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls’,[sheet1$])

    1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
    2)[]和美圆$必须要,否则M$可不认这个账 

  • 相关阅读:
    Git使用及关联远程仓库
    Ceres Solver
    Halcon手眼标定
    Halcon 3D定位方法
    机器学习-数学基础
    Halcon匹配方法
    手眼标定
    C动态内存分配
    Halcon Calibration Assistant
    Visualization
  • 原文地址:https://www.cnblogs.com/snowball/p/467482.html
Copyright © 2011-2022 走看看