OVH Cloud OVH Cloud

Ouvrir un excel à partir d'une webpart

5 réponses
Avatar
Bertrand
Bonjour,

Je cherche à ouvrir une instance d'Excel à partir d'une webpart inclus dans
un serveur sharepoint ( SPS2003 ).
J'ai essayer de m'inspirer de :
http://support.microsoft.com/kb/302084/

mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
il m'affiche une page d'erreur "An unexpected error has occurred."

C'est étrange car l'erreur n'a pas été capté par le try ...
Si quelqu'un avait une idée pour résoudre mon problème ... ??
Merci d'avance,
Bertrand

5 réponses

Avatar
Julien Bakmezdjian [MS]
Bonjour,

Vous souhaitez apparemment lancer Excel depuis du code serveur... Cela n'est
absolument pas supporté, et pour cause : vous allez au devant de graves
ennuis !
Citons deux problèmes majeurs parmi d'autres :
1. Vous allez lancer autant d'instances d'Excel que d'utilisateurs...
Saturation TRES rapide garantie...
2. Personne ne sera présent devant le serveur pour cliquer sur les
messages d'erreur d'Excel...

Pour d'autres infos, voir :
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757

Concernant le problème que vous rencontrez, plusieurs points (juste pour
info, puisque je vous recommande vivement d'éviter dette automation côté
serveur) :
- L'utilisateur authentifié a-t-il le droit de se logger sur le serveur
et d'y lancer des applications ?
- Le niveau de confiance du web.config est-il à Full (pas forcément
recommandé non plus, mais pratique pour les tests) <trust level="Full"
originUrl="" />
- Ajouter un bloc try... catch autour de la ligne fautive et afficher le
message d'erreur correspondant (si l'on se trouve par exemple dans la
méthode RenderWebPart, utiliser output.Write(ex.Message)). Cela risque de ne
pas donner de résultat malgré tout en fonction de l'exception générée.

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message de
news:
Bonjour,

Je cherche à ouvrir une instance d'Excel à partir d'une webpart inclus
dans
un serveur sharepoint ( SPS2003 ).
J'ai essayer de m'inspirer de :
http://support.microsoft.com/kb/302084/

mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
il m'affiche une page d'erreur "An unexpected error has occurred."

C'est étrange car l'erreur n'a pas été capté par le try ...
Si quelqu'un avait une idée pour résoudre mon problème ... ??
Merci d'avance,
Bertrand


Avatar
Bertrand
En fait je me suis mal exprimé, je voudrais que se soit les clients du
serveurs qui ouvre une instance d'excel ... pas le serveur lui même ... le
serveur fournirait alors juste les informations pour le compléter à partir de
ses listes ...
Est ce que cela est il possible ?
Si oui, ou puis je trouver un exemple ou une documentation sur le sujet ?
Merci d'avance,
Bertrand

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Vous souhaitez apparemment lancer Excel depuis du code serveur... Cela n'est
absolument pas supporté, et pour cause : vous allez au devant de graves
ennuis !
Citons deux problèmes majeurs parmi d'autres :
1. Vous allez lancer autant d'instances d'Excel que d'utilisateurs...
Saturation TRES rapide garantie...
2. Personne ne sera présent devant le serveur pour cliquer sur les
messages d'erreur d'Excel...

Pour d'autres infos, voir :
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757

Concernant le problème que vous rencontrez, plusieurs points (juste pour
info, puisque je vous recommande vivement d'éviter dette automation côté
serveur) :
- L'utilisateur authentifié a-t-il le droit de se logger sur le serveur
et d'y lancer des applications ?
- Le niveau de confiance du web.config est-il à Full (pas forcément
recommandé non plus, mais pratique pour les tests) <trust level="Full"
originUrl="" />
- Ajouter un bloc try... catch autour de la ligne fautive et afficher le
message d'erreur correspondant (si l'on se trouve par exemple dans la
méthode RenderWebPart, utiliser output.Write(ex.Message)). Cela risque de ne
pas donner de résultat malgré tout en fonction de l'exception générée.

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message de
news:
> Bonjour,
>
> Je cherche à ouvrir une instance d'Excel à partir d'une webpart inclus
> dans
> un serveur sharepoint ( SPS2003 ).
> J'ai essayer de m'inspirer de :
> http://support.microsoft.com/kb/302084/
>
> mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
> il m'affiche une page d'erreur "An unexpected error has occurred."
>
> C'est étrange car l'erreur n'a pas été capté par le try ...
> Si quelqu'un avait une idée pour résoudre mon problème ... ??
> Merci d'avance,
> Bertrand





Avatar
Julien Bakmezdjian [MS]
Bonjour,

Il faut utiliser un appel VBS du genre oXL =
createObject("Excel.Application")

Ou an Javascript oXL = new ActiveXObject("Excel.Application")

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message de
news:
En fait je me suis mal exprimé, je voudrais que se soit les clients du
serveurs qui ouvre une instance d'excel ... pas le serveur lui même ... le
serveur fournirait alors juste les informations pour le compléter à partir
de
ses listes ...
Est ce que cela est il possible ?
Si oui, ou puis je trouver un exemple ou une documentation sur le sujet ?
Merci d'avance,
Bertrand

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Vous souhaitez apparemment lancer Excel depuis du code serveur... Cela
n'est
absolument pas supporté, et pour cause : vous allez au devant de graves
ennuis !
Citons deux problèmes majeurs parmi d'autres :
1. Vous allez lancer autant d'instances d'Excel que d'utilisateurs...
Saturation TRES rapide garantie...
2. Personne ne sera présent devant le serveur pour cliquer sur les
messages d'erreur d'Excel...

Pour d'autres infos, voir :
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757

Concernant le problème que vous rencontrez, plusieurs points (juste pour
info, puisque je vous recommande vivement d'éviter dette automation côté
serveur) :
- L'utilisateur authentifié a-t-il le droit de se logger sur le
serveur
et d'y lancer des applications ?
- Le niveau de confiance du web.config est-il à Full (pas forcément
recommandé non plus, mais pratique pour les tests) <trust level="Full"
originUrl="" />
- Ajouter un bloc try... catch autour de la ligne fautive et afficher
le
message d'erreur correspondant (si l'on se trouve par exemple dans la
méthode RenderWebPart, utiliser output.Write(ex.Message)). Cela risque de
ne
pas donner de résultat malgré tout en fonction de l'exception générée.

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message
de
news:
> Bonjour,
>
> Je cherche à ouvrir une instance d'Excel à partir d'une webpart inclus
> dans
> un serveur sharepoint ( SPS2003 ).
> J'ai essayer de m'inspirer de :
> http://support.microsoft.com/kb/302084/
>
> mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
> il m'affiche une page d'erreur "An unexpected error has occurred."
>
> C'est étrange car l'erreur n'a pas été capté par le try ...
> Si quelqu'un avait une idée pour résoudre mon problème ... ??
> Merci d'avance,
> Bertrand







Avatar
Bertrand
Bonjour,

C'est bien ce que je cherche à faire, mais existe t'il un moyen de la faire
en C# ?

Merci d'avance,
Bertrand

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Il faut utiliser un appel VBS du genre oXL =
createObject("Excel.Application")

Ou an Javascript oXL = new ActiveXObject("Excel.Application")

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message de
news:
> En fait je me suis mal exprimé, je voudrais que se soit les clients du
> serveurs qui ouvre une instance d'excel ... pas le serveur lui même ... le
> serveur fournirait alors juste les informations pour le compléter à partir
> de
> ses listes ...
> Est ce que cela est il possible ?
> Si oui, ou puis je trouver un exemple ou une documentation sur le sujet ?
> Merci d'avance,
> Bertrand
>
> "Julien Bakmezdjian [MS]" a écrit :
>
>> Bonjour,
>>
>> Vous souhaitez apparemment lancer Excel depuis du code serveur... Cela
>> n'est
>> absolument pas supporté, et pour cause : vous allez au devant de graves
>> ennuis !
>> Citons deux problèmes majeurs parmi d'autres :
>> 1. Vous allez lancer autant d'instances d'Excel que d'utilisateurs...
>> Saturation TRES rapide garantie...
>> 2. Personne ne sera présent devant le serveur pour cliquer sur les
>> messages d'erreur d'Excel...
>>
>> Pour d'autres infos, voir :
>> http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757
>>
>> Concernant le problème que vous rencontrez, plusieurs points (juste pour
>> info, puisque je vous recommande vivement d'éviter dette automation côté
>> serveur) :
>> - L'utilisateur authentifié a-t-il le droit de se logger sur le
>> serveur
>> et d'y lancer des applications ?
>> - Le niveau de confiance du web.config est-il à Full (pas forcément
>> recommandé non plus, mais pratique pour les tests) <trust level="Full"
>> originUrl="" />
>> - Ajouter un bloc try... catch autour de la ligne fautive et afficher
>> le
>> message d'erreur correspondant (si l'on se trouve par exemple dans la
>> méthode RenderWebPart, utiliser output.Write(ex.Message)). Cela risque de
>> ne
>> pas donner de résultat malgré tout en fonction de l'exception générée.
>>
>> Cordialement,
>>
>> Julien Bakmezdjian
>>
>> "Bertrand" a écrit dans le message
>> de
>> news:
>> > Bonjour,
>> >
>> > Je cherche à ouvrir une instance d'Excel à partir d'une webpart inclus
>> > dans
>> > un serveur sharepoint ( SPS2003 ).
>> > J'ai essayer de m'inspirer de :
>> > http://support.microsoft.com/kb/302084/
>> >
>> > mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
>> > il m'affiche une page d'erreur "An unexpected error has occurred."
>> >
>> > C'est étrange car l'erreur n'a pas été capté par le try ...
>> > Si quelqu'un avait une idée pour résoudre mon problème ... ??
>> > Merci d'avance,
>> > Bertrand
>>
>>
>>





Avatar
Julien Bakmezdjian \(MS]
Bonjour,

En fait, tout code C# est du code "serveur". ASP.NET et C# permettent
d'écrire du code qui va s'exécuter côté serveur pour générer le HTML envoyé
au client. Le client ne reçoit que du code HTML, contenant éventuellement du
code client, ou Javascript.
Tout ce que vous pouvez faire en C# c'est écrire le code qui va "rendre" le
code Javascript qui va s'exécuter côté client...

Dons, par exemple dans RenderWebPart, quelque chose comme :

output.Write("<script>var oXL = new ActiveXObject("Excel.Application");
. . . /script>");

Cela va écrire le code JS dans la page à envoyer au client. Qui va la
recevoir et exécuter le code JS qu'elle contient. Il n'est donc pas possible
d'écrire du code C# qui va s'exécuter côté client... Il faudra bel et bien
faire du JS à un moment donné.

J'espère que cela clarifie un peu les choses,

Cordialement,

Julien Bakmezjdjian

"Bertrand" wrote in message
news:
Bonjour,

C'est bien ce que je cherche à faire, mais existe t'il un moyen de la
faire
en C# ?

Merci d'avance,
Bertrand

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

Il faut utiliser un appel VBS du genre oXL >> createObject("Excel.Application")

Ou an Javascript oXL = new ActiveXObject("Excel.Application")

Cordialement,

Julien Bakmezdjian

"Bertrand" a écrit dans le message
de
news:
> En fait je me suis mal exprimé, je voudrais que se soit les clients du
> serveurs qui ouvre une instance d'excel ... pas le serveur lui même ...
> le
> serveur fournirait alors juste les informations pour le compléter à
> partir
> de
> ses listes ...
> Est ce que cela est il possible ?
> Si oui, ou puis je trouver un exemple ou une documentation sur le sujet
> ?
> Merci d'avance,
> Bertrand
>
> "Julien Bakmezdjian [MS]" a écrit :
>
>> Bonjour,
>>
>> Vous souhaitez apparemment lancer Excel depuis du code serveur... Cela
>> n'est
>> absolument pas supporté, et pour cause : vous allez au devant de
>> graves
>> ennuis !
>> Citons deux problèmes majeurs parmi d'autres :
>> 1. Vous allez lancer autant d'instances d'Excel que
>> d'utilisateurs...
>> Saturation TRES rapide garantie...
>> 2. Personne ne sera présent devant le serveur pour cliquer sur les
>> messages d'erreur d'Excel...
>>
>> Pour d'autres infos, voir :
>> http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757
>>
>> Concernant le problème que vous rencontrez, plusieurs points (juste
>> pour
>> info, puisque je vous recommande vivement d'éviter dette automation
>> côté
>> serveur) :
>> - L'utilisateur authentifié a-t-il le droit de se logger sur le
>> serveur
>> et d'y lancer des applications ?
>> - Le niveau de confiance du web.config est-il à Full (pas
>> forcément
>> recommandé non plus, mais pratique pour les tests) <trust level="Full"
>> originUrl="" />
>> - Ajouter un bloc try... catch autour de la ligne fautive et
>> afficher
>> le
>> message d'erreur correspondant (si l'on se trouve par exemple dans la
>> méthode RenderWebPart, utiliser output.Write(ex.Message)). Cela risque
>> de
>> ne
>> pas donner de résultat malgré tout en fonction de l'exception générée.
>>
>> Cordialement,
>>
>> Julien Bakmezdjian
>>
>> "Bertrand" a écrit dans le
>> message
>> de
>> news:
>> > Bonjour,
>> >
>> > Je cherche à ouvrir une instance d'Excel à partir d'une webpart
>> > inclus
>> > dans
>> > un serveur sharepoint ( SPS2003 ).
>> > J'ai essayer de m'inspirer de :
>> > http://support.microsoft.com/kb/302084/
>> >
>> > mais dès qu'il passe la ligne : "oXL = new Excel.Application();"
>> > il m'affiche une page d'erreur "An unexpected error has occurred."
>> >
>> > C'est étrange car l'erreur n'a pas été capté par le try ...
>> > Si quelqu'un avait une idée pour résoudre mon problème ... ??
>> > Merci d'avance,
>> > Bertrand
>>
>>
>>