繁体   English   中英

上传到数据表时找到空的excel文件

[英]Find the Empty excel file when upload to datatable

用户通过Excel文件上传输入。 我想找到excel文件是否为空或其他。我检查内容长度和文件大小以查找空文件..size在空文件之间有所不同(没有类型和用户类型的数据,并删除所有数据以使之为空)例如,emptyfile的内容长度为8714,但用户键入任何数据并删除所有数据,则内容长度为8104

所以我将Excel文件转换为数据表并检查数据表是否为空。当将空文件转换为数据表时,数据表具有默认列F1.so datatable = null不起作用。请帮我

我的代码:

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”中包含数据,也将返回Empty ..并且F1不是所有服务器的默认列...因此它也不好。

使用如下代码:

     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
     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM