关于在asp.net中读取excel文件的问题

时间:2013-09-09 14:43:47

标签: asp.net excel

我尝试在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项目,并且它可以工作。

有人对此有所了解吗?感谢。

2 个答案:

答案 0 :(得分:0)

确保IIS拥有该位置的权限。

答案 1 :(得分:0)

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