我正在尝试使用下面显示的代码读取Excel(xlsx)文件。我得到一个“外部表不是预期的格式。” 错误,除非我已经在Excel中打开了文件。换句话说,我必须先在Excel中打开文件,然后才能从C#程序中读取文件。xlsx文件在我们的网络上共享。如何读取文件而不必先打开它?谢谢
string sql = "SELECT * FROM [Sheet1$]"; string excelConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathname + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\""; using (OleDbDataAdapter adaptor = new OleDbDataAdapter(sql, excelConnection)) { DataSet ds = new DataSet(); adaptor.Fill(ds); }
“外部表的格式不正确。” 尝试使用带有以下连接字符串的Excel 2007文件时,通常会发生这种情况:Microsoft.Jet.OLEDB.4.0和Extended Properties = Excel 8.0
使用以下连接字符串似乎可以解决大多数问题。
public static string path = @"C:\src\RedirectApplication\RedirectApplication\301s.xlsx"; public static string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";