Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.net EF应用程序中,Microsoft.Office.Interop.Excel.Workbooks.Open()仅在调试模式下工作_C#_.net_Excel_Entity Framework - Fatal编程技术网

C# 在.net EF应用程序中,Microsoft.Office.Interop.Excel.Workbooks.Open()仅在调试模式下工作

C# 在.net EF应用程序中,Microsoft.Office.Interop.Excel.Workbooks.Open()仅在调试模式下工作,c#,.net,excel,entity-framework,C#,.net,Excel,Entity Framework,当用户单击网页中的按钮时,我想打开一个Excel文件。 但它只有在VS2010中调试代码时才起作用。当我打开网页并单击按钮时,它返回一个错误: Microsoft Excel无法访问文件“K:\report\u SYY\u per\u month.xlsx”。有几个可能的原因: •文件名或路径不存在 •另一个程序正在使用该文件 •您试图保存的工作簿与当前打开的工作簿同名。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息,以及错误在代码中的起源 我目前使用的代

当用户单击网页中的按钮时,我想打开一个Excel文件。 但它只有在VS2010中调试代码时才起作用。当我打开网页并单击按钮时,它返回一个错误:

Microsoft Excel无法访问文件“K:\report\u SYY\u per\u month.xlsx”。有几个可能的原因:

•文件名或路径不存在

•另一个程序正在使用该文件

•您试图保存的工作簿与当前打开的工作簿同名。 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息,以及错误在代码中的起源

我目前使用的代码还不是最终版本,当然

protected void ReportButton_Click(object sender, EventArgs e)
        {
            string path = @"K:\report_SYY_per_month.xlsx";

        var excel = new Excel.Application();
        excel.Visible = true;
        //excel.UserControl = true;

        System.Globalization.CultureInfo CI = System.Threading.Thread.CurrentThread.CurrentCulture;

        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

        Excel.Workbooks wbooks = excel.Workbooks;


        Excel.Workbook wBook = wbooks.Open(path,
            0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
            true, false, 0, true, false, false);

        Excel.Sheets sheets = wBook.Worksheets;

        string currentSheet = "per_month";
        Excel.Worksheet excelWorksheet = (Excel.Worksheet)sheets.get_Item(currentSheet);

        Excel.Range excelCell = (Excel.Range)excelWorksheet.get_Range("A1", "A1");



        wbooks.Close();
        excel.Quit();

        GC.Collect();
        GC.WaitForPendingFinalizers();

        System.Threading.Thread.CurrentThread.CurrentCulture = CI;
    }

你是说从IIS运行时它不工作?检查应用程序池用户是否具有读取该文件的权限-默认情况下,它通常是一个低权限服务帐户,没有通常的计算机用户权限。或以具有适当权限的域帐户运行应用程序池。也就是说,微软-看看其他选择。另一个想法是:如果是网络共享,应用程序池用户可能没有映射K驱动器。请尝试完整的UNC路径,然后再次确保它具有权限。超出主题,但您是否考虑过使用由microsoft编辑的,而不是互操作。这样做会阻止您在服务器上安装office并支付费用。首先,这是我在这里的第一个问题,所以感谢你们两位这么快回复我。。我想做的主要工作是打开一个预格式化的Excel文件,然后从数据库中向其单元格动态添加数据,这样用户就可以将其保存在他喜欢的地方。也就是说,要回答这两个问题:1 K未映射,是物理驱动器,2拥有Office不是问题,我们已经这样做了,3当前该文件具有以下全部权限:网络服务、用户、IIS\u IUSR、,DefaultAppPool@Rup是的,这正是我的意思,它在vs2010调试器上运行良好,但不是从IIS。。