我現在要上傳Excel,并將其裏面的內容裝化成Datatale:目前我的程序如下:
     DataTable dt = new DataTable();
        string filename = FileUpload1.FileName.Substring(0, FileUpload1.FileName.LastIndexOf("."));
        string name = filename+".xls";
        string savepath = Server.MapPath("~") + "\\uploadfile" + "\\" + name + "";
        FileUpload1.PostedFile.SaveAs(savepath);//存儲到相對路徑
        string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="+savepath+";Extended Properties=Excel 8.0";//C#连接Excel连接字符串        String strSql = "SELECT * FROM [{0}]";
        OleDbConnection objConn = new OleDbConnection(strConn);
        objConn.Open();
        OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
        objCmd.Connection = objConn;
        OleDbDataAdapter adapter = new OleDbDataAdapter(objCmd);
        DataSet ds = new DataSet();
        try
        {
            adapter.Fill(ds, "[{0}]");
            dt = ds.Tables[0];
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        catch (Exception ex)
        {
            ex.ToString();
        }
        dt = ds.Tables[0];其中savepath=D:\MMSWeb\uploadfile\FileName.xls    我的電腦中存在此Excel我在運行時出現:外部資料表不是預期的格式。各位高手請幫幫忙,謝謝!

解决方案 »

  1.   

    String strSql = "SELECT * FROM [{0}]";{0} 还没有赋值呢SheetName 呢?http://blog.csdn.net/fangxinggood/category/751589.aspx
      

  2.   

    http://blog.csdn.net/fangxinggood/archive/2005/06/18/397315.aspx
      

  3.   

    放到grd中的格式不对?上张图!
      

  4.   

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
     using(OleDbConnection OleConn = new OleDbConnection(strConn))
    {
      OleConn.Open();
      String sql = "SELECT * FROM [Sheet1$]";
      OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
      DataSet ds= new DataSet();
      OleDaExcel.Fill(ds);
      OleConn.Close();
    }
    检查excel,连接字符串,还有sheet名称