0

我尝试在 Asp.Net 中读取一个 excel 文件。我有这个错误:

Microsoft Excel cannot access the file 'C:\tablobilgisayar.xlsx'. There are several possible reasons:
• The file name or path does not exist.

• The file is being used by another program.

• The workbook you are trying to save has the same name as a currently open workbook.

我的代码是:

Microsoft.Office.Interop.Excel.Application ExcelObj = null;
        ExcelObj = new Microsoft.Office.Interop.Excel.Application();

        Microsoft.Office.Interop.Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(
           @"C:\tablobilgisayar.xlsx", 0, true, 5,
           "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false,
            0, true);

我的磁盘上有这个文件,路径是真的。我也使用 IIS 7.5。我认为这是关于 IIS 的。因为我将粘贴文件复制到另一个使用 Visual Studio 的本地 IIS 的空 asp.net 项目中,并且它有效。

有人对此有想法吗?谢谢。

4

2 回答 2

0

确保 IIS 对该位置具有权限。

于 2013-09-09T14:48:32.353 回答
0

正如其他人指出的那样,您可以通过 Excel 中的 Interop 读取文件,但不建议这样做,因为它很慢,必须在服务器上安装 excel 并且可能导致您的线程挂起。一个很好的替代方案是读取 *xlsx / *.xlsm 文件的库是 EPPLUS,它是免费的,使用效果更好(直接使用 linq、datatable 等,无需繁琐的互操作接口)并且速度提高了 1000%(我不是在开玩笑) . 我知道,您必须更改您的应用程序,这很糟糕,但我之前尝试过 Interop,并感到震惊,替代方案要好得多。

于 2013-09-09T15:10:38.357 回答