ConnectionString用于获取Excel文件问题

时间:2010-10-19 19:02:10

标签: c# asp.net excel connection-string

在名为(ExcelFiles)的文件夹中有一个Excel文件命名(a.xlsx)。

ExcelFiles文件夹位于我项目的根目录中。

所以我获取excel文件数据的连接字符串是这样的:

<add name="xlsx" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=aaa\ExcelFiles\a.xlsx;Extended Properties=Excel 12.0"/>

aaa =我的项目名称

使用此连接字符串在本地,每个东西都可以,但在上传网站后我有错误。

问题在哪里?

这条路是真的 - &gt; 〜/ ExcelFiles / a.xlsx或不是

你能解决这条道路吗4我......

解决路径问题后,错误是这样的:

 The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

我该怎么处理这个错误?

感谢未来的进展

最好的问候

2 个答案:

答案 0 :(得分:1)

您托管该文件的计算机没有安装ACE OleDB for office驱动程序。我会切换到JetOleDB驱动程序

Jet OleDB连接字符串看起来像

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

Excel8.0是版本2003我相信。对于2007年,您将需要使用Excel12.0

所以我会做一个String.Format并简单地传入excel文件的位置,当然因为这看起来像是一个asp.net应用程序,所以看起来应该是这样的:

String con = String.Format( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"", Server.MapPath(EXCEL FILE LOCATION) );

当然,您可以简单地将String.Format中使用的String放在配置文件中,这样就不会像我拥有的​​那样进行硬编码。

答案 1 :(得分:0)