使用EPPlus检查文件是否确实是Excel文件

Rob*_*uch 7 c# excel epplus

我在C#中使用EPPlus来读取Excel(.xlsx)文件.初始化完成如下:

var package = new ExcelPackage(new FileInfo(filename));
Run Code Online (Sandbox Code Playgroud)

这工作正常但有没有办法检查指定filenamepackage实际上是否是一个有效的.xlsx文件?否则,在非Excel对象上操作时会出现异常,例如,如果用户意外打开.zip文件或其他.

Mik*_*Del 5

您可以检查文件的扩展名:

string file = @"C:\Users\Robert\Documents\Test.txt";

string extenstion = Path.GetExtension(file);
Run Code Online (Sandbox Code Playgroud)

更新

对于某些文件无法在 EPPlus 文档中打开的情况,我还没有找到某种返回值,但是您可以使用它来捕获异常:

FileInfo fileInfo = new FileInfo(pathToYourFile);

ExcelPackage package = null;
try
{
    package = new ExcelPackage(fileInfo);
}
catch(Exception exception)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

如果您不在catch- 这意味着它已正确打开。

  • 是的,但这不会以二进制方式检测文件是否为 Excel,对吗? (2认同)