1

我正在使用以下代码在具有 Office 2007、SQL Server 2008 的本地 PC 上设置连接字符串:

string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + MapPath(Request.ApplicationPath) + "\\" + excelFolderName + fileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\"";

我的操作系统是 Windows 7(64 位),我可以毫无问题地读取XLS和文件。XLSX

我已经将我的项目发布到 MS Server 2003 R2 标准版 X64 中,在遇到一些问题后,因为我没有ACE OLEDB 12.0安装,我安装了“Microsoft Access Database Engine 2010 Redistributable”并且我无法读取XLS文件。

当我尝试打开XLSX(使用 Office 2007 创建的)时出现问题,因为我收到此错误:

外部表不是预期的格式

我究竟做错了什么?

我不想安装以前的“Microsoft Access Database Engine 2007 Redistributable”,因为它只有一个 32 位版本,这迫使我将我的项目构建为 32 位......

提前致谢

4

2 回答 2

0

也许您需要 .xlx 和 .xlxs 文件的不同连接字符串?看看这个,它可能会有所帮助:http ://www.arboundy.com/2010/11/the-microsoft.ace.oledb.12.0-provider-is-not-registered-on-the-local-machine/

于 2011-01-24T15:26:36.203 回答
0

我遇到了类似的问题(请参阅我的帖子IIS and OLE DB External table is not in the expected format)。我开始认为 ACE 存在严重问题,因为我的连接字符串是 ACE 12.0。

由于您使用的是 Excel 2007,因此您仍然可以使用 Jet,这可能会解决您的问题。如果您使用 Excel 2010 及更高版本,则必须使用 ACE。

于 2017-05-16T14:08:43.867 回答