我无法打开.xlsx文件

cmr*_*ema 4 c# oledb excel

我想打开一个xlsx文件,我已经尝试了下面的代码,但它既没有打开也没有抛出任何错误.

任何人都可以对它施加任何影响

string path = "C:\\examples\\file1.xlsx";
string connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\";");
OleDbConnection cn = new OleDbConnection(connString);
cn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", cn);
DataTable dt = new DataTable();
adapter.Fill(dt);
Run Code Online (Sandbox Code Playgroud)

Jus*_*ant 6

2010年12月,微软(最终!)发布了一个用于CSV和XLSX文件的64位OLEDB驱动程序.

您将需要64位Microsoft Access数据库引擎2010可再发行组件.确保下载64位版本(AccessDatabaseEngine_X64.exe).您需要卸载任何32位Office应用程序(包括Sharepoint Designer!)才能安装它.

如果你想要CSV,你会想要Microsoft Access Text Driver (*.txt, *.csv)驱动程序名称,但我还没有找到一个完整的连接字符串,但是使用OLEDB中的这个驱动程序(尽管你有,请留下一个赞扬,我会修改这个答案).请注意,64位名称与32位版本不同.

要读取XLSX文件,请使用如下连接字符串:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
 + FilePath
 + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
Run Code Online (Sandbox Code Playgroud)

对于XLS(2007之前的Excel)文件,请使用如下连接字符串:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
 + FilePath
 + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
Run Code Online (Sandbox Code Playgroud)

非常感谢这篇博文这个答案,当我遇到同样的问题时,我指出了正确的方向,并提供了我适合写这个答案的内容.