Excel无法从C#访问

时间:2016-08-08 12:54:45

标签: c# asp.net excel

这是关于我们在Production中遇到的Excel问题。我们有一个asp.net应用程序,它从共享驱动器读取Excel。我们的服务器上存在Dcom配置和安全设置问题,导致无法完成此过程。

我们目前正在服务帐户中运行该流程,该帐户在Dcom身份标签中定义。

我们拥有应用程序正在读取文件的服务帐户的共享驱动器的完全权限。但我们仍然得到如下错误。 (错误消息:Microsoft无法访问该文件:有几个可能的原因:文件名或路径不存在,该文件正由另一个程序使用,您尝试保存的工作簿与当前打开的工作簿具有相同的名称)

我们还拥有excel位置的服务帐户的完全权限。由于应用程序将由不同的用户运行,我们无法将DCom设置更改为“交互式用户”。企业希望使用服务帐户运行应用程序。 如果我们将其更改为“交互式用户”,它将按预期工作,并且Excel正在打开而没有任何问题。

服务帐户也会添加到COM属性设置中。

我在Windows \ System32 \ Config \ systemprofile \ desktop和Windows \ SysWow64 \ Config \ systemprofile \ desktop下创建了Desktop文件夹,并提供了服务帐户的完全权限,但问题没有解决问题。

你能帮助我们吗?

1 个答案:

答案 0 :(得分:-1)

string con =
  @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;" + 
  @"Extended Properties='Excel 8.0;HDR=Yes;'";    
using(OleDbConnection connection = new OleDbConnection(con))
{
    connection.Open();
    OleDbCommand command = new OleDbCommand("select * from [Sheet1$]", connection); 
    using(OleDbDataReader dr = command.ExecuteReader())
    {
         while(dr.Read())
         {
             var row1Col0 = dr[0];
             Console.WriteLine(row1Col0);
         }
    }
}

试试这个。猜猜这对你很有用