我尝试在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项目,并且它可以工作。
有人对此有所了解吗?感谢。
答案 0 :(得分:0)
确保IIS拥有该位置的权限。
答案 1 :(得分:0)
正如其他人指出的那样,你可以通过Interop从Excel读取文件,但不建议这样做,因为它很慢,必须在服务器上安装excel并可能导致你的线程挂起。 一个很好的选择是读取* xlsx / * .xlsm文件的库是EPPLUS,它是免费的,更好用(直接使用linq,datatable等,没有繁琐的互操作接口),速度提高1000%(我不是在开玩笑) 。 我知道,你必须改变你的应用程序,这很糟糕,但我之前尝试过Interop,并且在替代品方面更加震撼。