excel文件导出后cgdj00180$库名被客户修改,用以下语句就不能得到表了select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\cgdj00180.xls',cgdj00180$)不知有没有解决办法?

解决方案 »

  1.   

    我是这样做的,
    先得到EXCEL文件的每个Sheet名,做成
    一个下拉框,让他自己选择sheet名。
    办法有点笨,但是最有效。呵呵!
      

  2.   

    没有办法吗。。1   是否有保存时不能更改库名函数,文件可以随便改(我试了,另存不会改库名,但是从网上下载时的另存为改变了库名,没有办法了)2   select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\    cgdj00180.xls',cgdj00180$)句里  cgdj00180$ 是否可以变通为 [0] (表示第一个sheet)
    这样就可以不管它了,不知道有没有这方面的资料。  
      

  3.   

    已经用以下方法解决了!大家可以借鉴一下
    string strConn;
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
         @"Data Source='" + path +"' ; Extended Properties=Excel 5.0;";
    conn = new  OleDbConnection(strConn); conn.Open();
    dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string jjno=Session["jjno"].ToString();
    string jjghs=Session["jjghsID"].ToString(); //得到sheet name
    if(dt!=null)
    {
    tableName = dt.Rows[0]["TABLE_NAME"].ToString();