70
votes

I want to use an OpenFileDialog object to browse to an excel file. I would like to set the filter to open files with different types of excel extensions like: .xls, .xlsm, .xlsx and so on.

what I am using is this:

OpenFileDialog of = new OpenFileDialog();
of.Filter = "Excel Files(.xls)|*.xls| 
    Excel Files(.xlsx)|*.xlsx| Excel Files(*.xlsm)|*.xlsm";

This works, but the user must select the correct excel file type from the dropdown in the OpenFileDialog.

Does anyone know if there a way to apply one filter for all types of Excel extensions?

Something like: "...Excel Files (.xls, .xlsx, .xlxm)|*.xls, *.xlsx, *.xlsm;"

Thanks in advance for any replies.

2
The MSDN documentation has all the details: msdn.microsoft.com/en-us/library/… - David Heffernan
Thanks David and odyodyodys. Yes the example there on the page and I did read the page, but somehow I somehow missed the section. Thanks. - netcat

2 Answers

140
votes

Use a semicolon

OpenFileDialog of = new OpenFileDialog();
of.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
4
votes

If you want to merge the filters (eg. CSV and Excel files), use this formula:

OpenFileDialog of = new OpenFileDialog();
of.Filter = "CSV files (*.csv)|*.csv|Excel Files|*.xls;*.xlsx";

Or if you want to see XML or PDF files in one time use this:

of.Filter = @" XML or PDF |*.xml;*.pdf";