1个回答
展开全部
都编译过的可能没办法了,参考下吧:
1.在写读excel文件的程序时,会采用这样的oledb数据连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties='Excel 8.0;HDR=YES;IMEX=0';
2.但是,在两种情况下,这个oledb的数据连接会出错:一是面对Excel 2007以上的版本的xlsx文件时,二是程序被部署在64位版的操作系统中,而且运行时的程序集被编译为64位或是“任何平台”时。
第一种情况会导致文件打不开,因为jet 4.0不能支持xlsx文件格式。
第二种情况则会在创建ole connection时出现 “Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine” 的问题。就算是你在64位系统下安装了msdac也不行,msdac里的组件只能被32位模式的程序集访问。
3.需要下载安装Microsoft Access Database Engine, 缩写叫MS ACE, 现在最新版是2010版,这个组件分别发行了32位版与64位版,完整地支持目前所有的excel文件格式,当然还有所有的access文件格式,包括office 2007之前的旧版文件格式,用这个组件里的oledb provider也能一样能打开。
4.但是,需要使用新的oledb连接字符串,如下:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\test.xls;Extended Properties='Excel 12.0;HDR=YES;IMEX=0';
这样的连接字符串可以用于任何office版本的文件格式。而且在windows 64bit上也运行正常。
1.在写读excel文件的程序时,会采用这样的oledb数据连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties='Excel 8.0;HDR=YES;IMEX=0';
2.但是,在两种情况下,这个oledb的数据连接会出错:一是面对Excel 2007以上的版本的xlsx文件时,二是程序被部署在64位版的操作系统中,而且运行时的程序集被编译为64位或是“任何平台”时。
第一种情况会导致文件打不开,因为jet 4.0不能支持xlsx文件格式。
第二种情况则会在创建ole connection时出现 “Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine” 的问题。就算是你在64位系统下安装了msdac也不行,msdac里的组件只能被32位模式的程序集访问。
3.需要下载安装Microsoft Access Database Engine, 缩写叫MS ACE, 现在最新版是2010版,这个组件分别发行了32位版与64位版,完整地支持目前所有的excel文件格式,当然还有所有的access文件格式,包括office 2007之前的旧版文件格式,用这个组件里的oledb provider也能一样能打开。
4.但是,需要使用新的oledb连接字符串,如下:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\test.xls;Extended Properties='Excel 12.0;HDR=YES;IMEX=0';
这样的连接字符串可以用于任何office版本的文件格式。而且在windows 64bit上也运行正常。
追问
那个连接字符串。。。要加到哪里OTZ
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询