我正在使用以下代码在我的本地PC上设置具有Office 2007,SQL Server 2008的连接字符串:
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数据库引擎2010 Redistributable”和我无法阅读XLS
个文件。
当我尝试打开XLSX
(使用Office 2007创建)时出现问题,因为我收到此错误:
外部表格不是预期的格式
我做错了什么?
我不想安装以前的“Microsoft Access数据库引擎2007可再发行组件”,因为它只有32位版本,迫使我将项目构建为32位......
提前致谢
答案 0 :(得分:0)
也许您需要.xlx和.xlxs文件的不同连接字符串?看看这个,它可能会有所帮助:http://www.arboundy.com/2010/11/the-microsoft.ace.oledb.12.0-provider-is-not-registered-on-the-local-machine/
答案 1 :(得分:0)
我遇到了类似的问题(请参阅我的帖子IIS and OLE DB External table is not in the expected format)。我开始认为ACE有一个严重的问题,因为我的连接字符串是ACE 12.0。
由于您使用的是Excel 2007,因此您仍然可以使用Jet,这可能会解决您的问题。如果您使用Excel 2010及更高版本,则必须使用ACE。