Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查C中的Excel文件是否为空#_C# - Fatal编程技术网

C# 检查C中的Excel文件是否为空#

C# 检查C中的Excel文件是否为空#,c#,C#,有谁能建议,如何检查xls文件是否为空? 我尝试了FileInfo(“fname”)。长度==0,但它不起作用 谢谢一个“空”Excel文件仍然会有一个Excel文件头,这就是为什么您对0大小的测试失败的原因 您可以使用查看以下内容: 我认为没有一个简单的解决方案与您所说的类似 您必须通过Excel解析器以编程的方式读取文件,并检查是否有数据。对于.xls您可以试试这个-它适合我 FileUpload1.SaveAs(Server.MapPath("~/FileUpload/") + path.

有谁能建议,如何检查xls文件是否为空? 我尝试了
FileInfo(“fname”)。长度==0
,但它不起作用

谢谢

一个“空”Excel文件仍然会有一个Excel文件头,这就是为什么您对0大小的测试失败的原因

您可以使用查看以下内容:


我认为没有一个简单的解决方案与您所说的类似


您必须通过Excel解析器以编程的方式读取文件,并检查是否有数据。

对于
.xls
您可以试试这个-它适合我

FileUpload1.SaveAs(Server.MapPath("~/FileUpload/") + path.Value);
                Workbook book = Workbook.Load(Server.MapPath(("~/FileUpload/") + FileUpload1.FileName));
                Worksheet sheet = book.Worksheets[0];
                sheetCount.Value = sheet.Cells.LastRowIndex.ToString();

                foreach (Worksheet ws in book.Worksheets)
                {
                    if (ws.Cells.Rows.Count != 0)
                    {
                        ddlSheets.Items.Add(ws.Name.ToString());
                    }
                }

我使用Excel Interop创建了此函数。它作为功能区外接程序工作,但是您可以将
Globals.ThisAddIn
替换为
Excel.Application

private bool IsEmptyFolder(Excel.Workbook wb)
        {
            try
            {
                foreach(Excel.Worksheet sheet in wb.Worksheets)
                {
                    if (Globals.ThisAddIn.Application.WorksheetFunction.CountA(sheet.Cells) != 0) return false;
                }
                return true;
            }
            catch
            {
                return false;
            }
        }

如果在单元格中找到任何具有值的工作表,则返回false。否则返回true(工作簿为空)。

是否试图避免Excel自动化?