使用EPPlus检查文件是否实际上是一个Excel文件

我在C#中使用EPPlus来读取Excel(.xlsx)文件。 初始化是这样完成的:

var package = new ExcelPackage(new FileInfo(filename)); 

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

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

 string file = @"C:\Users\Robert\Documents\Test.txt"; string extenstion = Path.GetExtension(file); 

更新

我还没有find某种types的返回值的情况下,一些文件无法在EPPlus文档中打开,但您可以使用它来捕获的excel:

 FileInfo fileInfo = new FileInfo(pathToYourFile); ExcelPackage package = null; try { package = new ExcelPackage(fileInfo); } catch(Exception exception) { ... } 

如果你不catch – 这意味着它被正确打开。