我想打开一个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)
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)
非常感谢这篇博文和这个答案,当我遇到同样的问题时,我指出了正确的方向,并提供了我适合写这个答案的内容.