一尘不染

Excel“外部表的格式不正确。”

c#

我正在尝试使用下面显示的代码读取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);
}

阅读 316

收藏
2020-05-19

共1个答案

一尘不染

“外部表的格式不正确。” 尝试使用带有以下连接字符串的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;";
2020-05-19