try
            {
                string strConn;
                string ExcelFile = @"D:\\20110829.xls";
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFile + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等                OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, "Sheet1");
                OleConn.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
怎么会报:数据绑定Excel失败!失败原因:'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
这是什么原因啊,求解答

解决方案 »

  1.   

    确定Excel文档中是否有“[Sheet1$]”这个工作表
      

  2.   

    string  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFile + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";            OleDbConnection conn = new OleDbConnection(strConn);
                conn.Open();
                string strExcel = "";
                DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                string tableName = schemaTable.Rows[0][2].ToString().Trim();
                strExcel = "select * from ["+tableName+"]";
      

  3.   


    是Sheet1$,可能你的工作表名称不叫:Sheet1$
    select * from [名称$]
      

  4.   

       Sheet1$    你的 工作名称可能不是Sheet1$
       你用SQL server  自带的工具去导入一下 EXCEL
        导入的过程中 会提示出 你的 EXCEL 的名字是什么
     你复制 下 替换了 Sheet1$ 就行了