I have scoured the net, and found many people asking this, yet none have fixed my answer.
I have a Connection Class, and a Method that uses that Class in a page.
If you use more than 1 extended property then the value tokens must be quoted, otherwise there is no way for the driver to distinguish them from the other non-extended properties in the connection string;
...Extended Properties=""Excel 8.0;IMEX=1"""
modify your connection string
String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES""");
reference: Could not find installable ISAM