C# OLEDB连接:如何确定它是HTML(网页)文档还是Excel文档

C# OLEDB连接:如何确定它是HTML(网页)文档还是Excel文档,c#,asp.net,excel,oledbconnection,C#,Asp.net,Excel,Oledbconnection,我有一个程序,它解析Excel文档并使用OLEDB连接将其绑定到asp.net中的GridView connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0; HDR=NO;\";", filePath); 它还可以选择使用OleDbConnection解析网页,但如果导入文档是网页,则会引发异常“外部表格式不正确””或

我有一个程序,它解析Excel文档并使用OLEDB连接将其绑定到asp.net中的GridView

connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0; HDR=NO;\";", filePath);
它还可以选择使用
OleDbConnection
解析网页,但如果导入文档是网页,则会引发异常“外部表格式不正确””或类似异常

connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"HTML Import; IMEX=1;\";", filePath);
此连接字符串适用于网页。如果您尝试解析Excel文档,它将为您提供相同的异常(见上文)

那么,当所有文件都具有相同的扩展名(.xls或.xlsx)时,我如何确定获得的是哪种类型的文件呢?
因此,在第一种情况下,我将使用一个连接字符串,在第二种情况下,使用另一个连接字符串。

在Try/catch块中尝试第一个连接字符串-如果它引发异常,则尝试第二个连接字符串。我是这样实现的。我可以期待更好的吗?
Html
是纯文本,您可以使用
StreamReader
来读取块并测试它是否有一些预期的Html标记,如