J’ai mon code comme suit :
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;
Maintenant, pour la ligne :
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);
Cela s’exécute directement depuis Visual Studio (F5) mais quand j’essaie d’y accéder avec IIS, cela ne fonctionne pas.
L’erreur suivante est générée :
Microsoft Office Excel ne peut pas accéder au fichier ‘c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx’. Il y a plusieurs raisons possibles :
-
Le nom de fichier ou le chemin n’existe pas.
-
Le fichier est utilisé par un autre programme.
-
Le classeur que vous essayez de sauvegarder a le même nom qu’un classeur actuellement ouvert.
J’ai essayé les solutions de contournement suivantes :
-
Le dossier et le fichier existent, accès donné à l’utilisateur IUSR_### (utilisateur IIS) et à l’utilisateur ASPNET dans le dossier où se trouve le fichier.
-
Dans les Services de composants (DCOM), accès donné à l’utilisateur approprié.
J’ai déjà donné toutes les permissions au dossier où le modèle (.xlsx) se trouve.
Des suggestions ?