string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + path + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1\""
用上边语句读取Excel数据 如果字符串是数字问题可以读到, 如果字符串中间有字母也没有问题。 但是字母出现在字符串最后边。 读取时候为空。 IMEX 改0 1 2 都试过也 还是这样。 请教大家。

解决方案 »

  1.   

    你这么写没问题。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程序始终将“互混”数据列作为文本读取。看不出有什么问题。
      

  2.   

    你好  我是这样写的  数据能加入数据库  没有报错....
    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + "; Extended Properties=Excel 8.0;";
    string strExcel = "select * from [sheet1$]";
      

  3.   

    楼上的 如果excel 中包含字母的话 是读取不到的。
      

  4.   

    如果excel 中包含字母???路径里包含字母?
      

  5.   

    private DataSet ExcelToDataSet(string opnFileName)
     7        {
     8            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+opnFileName+";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
     9            OleDbConnection conn = new OleDbConnection(strConn);            
    10            string strExcel = "";
    11            OleDbDataAdapter myCommand = null;
    12            DataSet ds = new DataSet();
    13            strExcel = "select * from [sheet1$]";
    14            try
    15            {
    16                conn.Open();
    17                myCommand = new OleDbDataAdapter(strExcel, strConn);
    18                myCommand.Fill(ds,"dtSource");
    19                return ds;
    20            }
    21            catch (Exception ex)
    22            {
    23                MessageBox.Show("导入出错:" + ex, "错误信息");
    24                return ds;
    25            }
    26            finally
    27            {
    28                conn.Close();
    29                conn.Dispose();
    30            }
    31        }
      

  6.   

    自己解决:string   myConnectionString   =   @ "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source   = "   +   path   +   ";Extended   Properties=\ 'Excel   8.0;HDR=NO;IMEX=1\ ' " 看'Excel   8.0;HDR=NO;IMEX=1\ '    用单引号 就可以了http://blog.csdn.net/musclecn/archive/2007/11/19/1891929.aspx