Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Office Excel cannot access the file 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx'

I have my code as follows :-

Microsoft.Office.Interop.Excel.Application oXL = null; Microsoft.Office.Interop.Excel.Sheets sheets; Application excel = new Microsoft.Office.Interop.Excel.Application();   excel.Workbooks.Add(System.Reflection.Missing.Value);  /*     * Here is the complete detail's about Workbook.Open()     *      *  Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format,      *  Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin,     *  Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)     */  Workbook workbook = excel.Workbooks.Open(     System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),     Missing.Value, true, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value); sheets = workbook.Worksheets; 

Now for the line :-

workbook = excel.Workbooks.Open(     System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),     Missing.Value, true, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value, Missing.Value, Missing.Value,     Missing.Value); 

It gets executed directly from the visual studio (F5) but when i try to access it with IIS it wont work. Throws error as follows:-

Microsoft Office Excel cannot access the file 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.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.

I have tried the work around as:-

  • Folder and the file exist, giving access to the IUSR_### (IIS user) and to the ASPNET user in the folder where the file is.
    • At Component Services(DCOM) given access to appropriate user.

I have already given all permission's to the folder where the template(.xlsx) exists

Any suggestions??

like image 613
Shubh Avatar asked Aug 18 '11 11:08

Shubh


People also ask

How do you fix the error Microsoft Excel Cannot access the file?

a) Click on File menu, click Options, Add-ins, Go button besides Manage: Com-in Add. b) Check if there are add-ins listed, clear the checkbox. c) Close the Office program and restart it. d) Enable each add-in one at a time, restart the Excel, and repeat the above procedure.

Why is my Excel sheet not accessible?

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.

Why do Excel files open in read only?

Excel spreadsheets may be Read Only due to their location. If the spreadsheet is on a network folder and you do not have appropriate network permissions to make make changes in the folder, the spreadsheet is Read Only. A spreadsheet on a CD-ROM, DVD or locked USB stick is Read Only.


2 Answers

Try this:

  1. Create the directory

C:\Windows\SysWOW64\config\systemprofile\Desktop

(for the 32-bit version of Excel/Office on a 64-bit Windows computer) or

C:\Windows\System32\config\systemprofile\Desktop

(for a 32-bit version of Office on a 32-bit Windows computer or a 64-bit version of Office on a 64-bit Windows computer).

  1. For the Desktop directory, add Full control permissions for the relevant user (for example in Win7 & IIS 7 & DefaultAppPool set permissions for user IIS AppPool\DefaultAppPool).

Original post with answer:

  • Excel 2007 automation on top of a Windows Server 2008 x64
like image 194
Eric Bonnot Avatar answered Sep 17 '22 04:09

Eric Bonnot


Let me note that in my place, adding the c:\windows\syswow64\config\systemprofile\desktop directory didn't work.

The point is that WOW64 stands for Windows on Windows64, that means it actually applies for 32-bit programs running on the 64bit OS.

Since I have 64-bit Excel installed, the proper directory turned out to be the c:\windows\system32\config\systemprofile\desktop

like image 35
Nikhil Avatar answered Sep 21 '22 04:09

Nikhil