2012-11-16 52 views
0

用戶通過Excel文件上傳輸入。 我想查找excel文件是空的還是else。我檢查內容長度和文件大小以查找空文件..大小在空文件之間有所不同(沒有類型和用戶類型數據並刪除所有數據以使其爲空)例如空文件8714的內容長度,但用戶鍵入任何數據並刪除所有數據,然後內容長度是8104那樣上傳到數據表時找到空的excel文件

所以我將excel文件轉換爲數據表並檢查數據表是否爲空或不.hw轉換空文件到DataTable中的數據表中有默認列F1.so數據表= null未work.Pls幫我

我的代碼:

string dirpath = Server.MapPath("~") + "uploadfile\\"; 
       string LocalFilePath = dirpath + fileName; 
       fileUpload.PostedFile.SaveAs(LocalFilePath); 

       string fileType = Path.GetExtension(fileName);   
       string SourceConstr = string.Empty; 
       var Inputs = ProjectAttributeMasterService.GetInputAttributes(7); 

       if (fileType == ".xls" || fileType == ".xlsx") 
       { 



        if (fileType == ".xls") 
        { 
         SourceConstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + LocalFilePath + "';;Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'"; 

        } 


        OleDbConnection con = new OleDbConnection(SourceConstr); 
        con.ResetState(); 
        con.Open(); 

        System.Data.DataTable dtl = new DataTable(); 
        System.Data.DataTable dts = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 

        OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]", con); 
        da.Fill(dtl); 


        if ((dtl.Rows.Count >= 1 || dtl.Columns.Count >= 1) && !dtl.Columns.Contains("F1")){ 
      } 
      else 
      { 
     /empty file 
      } 

dtl.Columns.Contains(「F1」)..如果我使用這個條件,即使Excel包含單元格「F1」中的數據,然後返回空......並且F1不是所有服務器的默認列...所以它也不是精細。

回答

0

如下使用代碼:

 OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]", con); 
    da.Fill(ds); 
    if ((ds.Table.Count >= 1) 
    {  
      if (ds.Tables[0].Rows.Count > 0) 
      { 
      //Excel contains data 
      } 
      else 
      { 
      //file is empty 
      } 
    } 
    else 
    { 
     //file is empty 
    } 
+0

數據表不包含在(dtl.Table) – Priya

+0

喜普里亞表method..got錯誤我編輯的代碼,並使用數據集,而不是數據表中嘗試使用這種方式。如果(dtl.Rows.Count> 0){data exists} else {not exist} – RVD

+0

或僅檢查數據表中是否存在大於0的行將會像 那樣工作。 – RVD