Checking if file actually is an Excel file using EPPlus

c#, epplus, excel

Solution

You can check the extension of your file:

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

string extenstion = Path.GetExtension(file);

Update

I havent found some kind of return values for the situation that some file cannot be open in the EPPlus documentation, but you can use this to catch the excetptions:

FileInfo fileInfo = new FileInfo(pathToYourFile);

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

If you are not in `catch` - thats mean it was opened correctly.

Problem

I'm using EPPlus in C# to read an Excel (.xlsx) file. The initialization is done like this: ``` var package = new ExcelPackage(new FileInfo(filename)); ``` This works fine but is there any way to check if the specified `filename` or `package` is actually a valid .xlsx file? Otherwise there will be exceptions when operating on a non-Excel object, e.g. if the user accidentially opens a .zip file or else.

Original source