EPPlus返回的工作表数量为0

7

当Excel文件(.xls)有4个工作表时,我得到了0个工作表计数。我不知道为什么它对我不起作用。请帮忙。

Excel版本为1908 Office 365。
EPPlus版本:4.5.3.3
C# .Net Framework版本:4.7

public static void readXLS(string FilePath)
{
    FileInfo existingFile = new FileInfo(FilePath);
    using (ExcelPackage package = new ExcelPackage(existingFile))
    {
        int count = package.Workbook.Worksheets.Count;
    }
}

我分享了要读取的Excel文件,这里是链接


你的代码似乎没有问题,也许可以检查一下这个链接是否相关:https://dev59.com/3l0a5IYBdhLWcg3w88k0。你的工作表中是否有命名区域? - jalsh
我曾经有命名区域,所以我删除了它们。但仍然无法获取工作表。我检查了链接,于是我创建了一个新的Excel文件,然后它能够读取那个新的Excel文件。但它无法读取现有的Excel文件。 - Shriram Karpur
我认为在文件的元数据中仍然存在您命名范围的痕迹。 - jalsh
我正在分享我想要读取的Excel文件,这是链接 https://drive.google.com/open?id=1ulBXtfdtwGPY-VM1zojdkkMdwDo1lo1G - Shriram Karpur
我不知道如何查看Excel文件中隐藏命名范围的元数据。而且,如果存在命名范围,EPPlus是否无法读取Excel文件? - Shriram Karpur
我可以确认,在.NET Core 2.2和EPPlust.Core 1.5.4中仍存在该问题。 - Annosz
2个回答

0

看起来这并不是你的情况,但可能会发生在其他人身上,所以我会把它留作答案。在我的情况下,文件扩展名是 .xlsx,因此在这方面没有问题。然而,该文件位于网络位置(即使我是通过在 Windows 中定义的网络驱动器访问它)。

因此,如果您遇到此问题,您可能希望让代码首先将文件复制到临时本地目标,然后使用 EPPlus 从那里访问它。完成后,您可以清除本地副本。

在我的情况下,访问网络位置的凭据也不同于我在 Windows 中使用的凭据,因此根据这一点,您的情况可能会有所不同。


-1

我发现如果文件保存为扩展名为 .xlsx,EPPlus 就可以正常工作。 我使用 .xlsx 没有问题,所以对我来说这不再是一个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接