我想打开一个 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);
2010 年 12 月,Microsoft(终于!)发布了用于 CSV 和 XLSX 文件的 64 位 OLEDB 驱动程序。
你需要 64 位。确保下载 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\"";
对于 XLS(2007 年之前的 Excel)文件,请使用如下连接字符串:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ FilePath
+ ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
非常感谢这篇博文 http://www.arboundy.com/2010/11/the-microsoft.ace.oledb.12.0-provider-is-not-registered-on-the-local-machine/ and 这个答案 https://stackoverflow.com/questions/3454701/32-bit-text-drivers-microsoft-access-microsoft-excel-and-text-files-from-a-6/3454742#3454742当我遇到同样的问题时,为我指明了正确的方向,并提供了我适应写这个答案的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)