Office sur un poste client

Office sur un poste client - Divers - Programmation

Marsh Posté le 06-04-2007 à 10:14:54    

Bonjour,
 
je développe une application web qui sera sur un serveur et qui sera accessible aux postes clients (normal...)
Cette application web est en fait une version web d'un logiciel développé en Delphi...
J'utilise donc une dll (toujours développé en delphi) qui regroupe l'ensemble de mes fonctions.
Certaines des fonctionnalités de mon logiciel (que ce soit en version windows ou web) utilisent Office, par exemple des tableaux excel qui sont remplis "automatiquement" par des données qui ont été entré dans le logiciel par l'utilisateur... Bref, voici en gros ce que fait mon logiciel...
 
Maintenant, ce qui pose problème:
Je dois pouvoir lancer les logiciels d'Office... j'ai donc 2 solutions:
 
1- Lancer Excel (ou autre) sur le poste client (choix numéro 1)
2- Lancer Excel sur le serveur et renvoyer le résultat sur le poste client (ce qui nécessite d'installer Office sur le serveur --> choix numéro 2)
 
 
Sachant que je préfère la première solution: Comment faire pour ouvrir Excel par exemple sur un poste client (si c'est possible) ? Quelle(s) technologie(s) pourrai(en)t m'aider ?
 
Merci d'avance


Message édité par jadorelescss38 le 06-04-2007 à 10:18:36
Reply

Marsh Posté le 06-04-2007 à 10:14:54   

Reply

Marsh Posté le 06-04-2007 à 11:30:58    

tu dois juste ouvrir excel ? ou ouvrir un fichier excel généré ?
 
pour le premier cas, pas de solution autre que passer par un activex ou une applet java qui va lever 20 000 warnings de sécurité
 
pour le second cas, t'as juste à envoyer en header de ton fichier généré le type mime correspondant à excel, le navigateur web va s'occuper d'ouvrir excel pour faire le rendu

Reply

Marsh Posté le 06-04-2007 à 11:35:40    

en techno web classique, c'est pas possible (et heureusement, sinon, bonjour les failles de sécurité!). A moins que tu veuilles juste proposer un ficheri excel en download?
Donc -> 2.

Message cité 1 fois
Message édité par rufo le 06-04-2007 à 11:36:16
Reply

Marsh Posté le 06-04-2007 à 11:41:10    

rufo a écrit :

en techno web classique, c'est pas possible (et heureusement, sinon, bonjour les failles de sécurité!). A moins que tu veuilles juste proposer un ficheri excel en download?
Donc -> 2.


c'est pas tout à fait vrai.
 
en se creusant bien le fion, tu peux faire des trucs pas mal avec la solution de la génération à la volée sur le serveur. tu peux même générer des macros à la volée, et les faire exécuter dans le fichier généré à l'ouverture (mais bon, faut un peu désactiver tout ce qui ressemble à de la sécurité pour ce qui est du site web, mais pour un intranet c'est pas gênant)
 
j'avais fais une application de CRM comme ça pour un client.
=> le gars au centre d'appel loguait l'appel dans une appli web. ça lui générait un document word, qui s'ouvrait sur son poste. ensuite il saisissait quelques infos, et une macro dans le fichier s'occupait de publiposter les infos au client, à un vendeur, ou au service sav selon les besoins. m'étais pas mal éclaté à l'époque. en tout cas, ils étaient ravis de l'application ^^. ensuite, lorsque chacun ouvrait le document word, la macro s'occupait d'assurer le suivi par rapport au serveur web.


Message édité par MagicBuzz le 06-04-2007 à 11:42:08
Reply

Marsh Posté le 06-04-2007 à 11:46:34    

MagicBuzz a écrit :

tu dois juste ouvrir excel ? ou ouvrir un fichier excel généré ?


 
Je dois ouvrir un fichier excel qui sera différent selon les données que l'utilisateur aura rentré dans le logiciel...
Mais je ne veux pas proposer le téléchargement du fichier, mais bien qu'il se crée et s'affiche sur le PC du client... (voir qu'il se crée sur le serveur et que je l'affiche ensuite sur le client... mais je veux pas qu'il soit téléchargé sur le poste client et que le client ai à l'ouvrir... je veux qu'il s'ouvre "tout seul".)
 
On m'a parlé d'activeX... mais je connais pas vraiment... sa pause des problèmes de sécurité ?
 
 

Reply

Marsh Posté le 06-04-2007 à 11:54:37    

t'as déjà essayé de faire un fichier html "tout bête" (avec un joli tableau tout moche mis en couleur avec des css toutes pourries) que tu renomme en *.xls sur le serveur ?
 
ho ! miracle quand tu l'ouvres depuis IE, ça ouvre excel et le fichier est dedans !
 
ben c'est de ça que je te parle... y'a que les pc sur lesquels excel n'est pas installé que IE propose d'enregistrer un fichier excel. par défaut, il l'ouvre dans excel, sans même rien demander à l'utilisateur...

Reply

Marsh Posté le 06-04-2007 à 12:07:46    

MagicBuzz a écrit :

ben c'est de ça que je te parle... y'a que les pc sur lesquels excel n'est pas installé que IE propose d'enregistrer un fichier excel. par défaut, il l'ouvre dans excel, sans même rien demander à l'utilisateur...


OK ça j'ai compris...
En fait mon truc est un peu plus compliqué que sa, le fichier que sa: Mon fichier excel doit être fait selon une mise en page bien précise pour permettre ensuite une importation... Le logiciel reconnaitra les données qui l'intéresse....
 
Pour l'exemple de "génération à la volée" dont tu parlais un peu plus haut, tu as utilisé activeX ?

Reply

Marsh Posté le 06-04-2007 à 12:19:31    

non.
je serveur web génère une page HTML, avec quelques balises spécifiques à Excel, puis l'envoie comme une bête page web en changeant le type mime de façon à ce que ce soit excel qui l'ouvre. rien aucun activex à faire.
 
ouvre simplement un document excel tout beau comme tu veux.
fait "enregistrer sous", choisi le format "html", et regarde le code qu'il te génère. ton serveur web doit générer une page avec la même tronche. t'as rien de plus à faire.

Reply

Marsh Posté le 06-04-2007 à 13:09:52    

jadorelescss38 a écrit :

Je dois ouvrir un fichier excel qui sera différent selon les données que l'utilisateur aura rentré dans le logiciel...
Mais je ne veux pas proposer le téléchargement du fichier, mais bien qu'il se crée et s'affiche sur le PC du client... (voir qu'il se crée sur le serveur et que je l'affiche ensuite sur le client... mais je veux pas qu'il soit téléchargé sur le poste client et que le client ai à l'ouvrir... je veux qu'il s'ouvre "tout seul".)
 
On m'a parlé d'activeX... mais je connais pas vraiment... sa pause des problèmes de sécurité ?


 
Alors en gros le principe, tu fais une exportation Excel, le fichier va être généré par le serveur et apparaitre en téléchargement il l'ouvre et s'ouvre automatiquement avec le programme qui gère les xls (Excel, OpenOffice Calc par exemple).

Reply

Marsh Posté le 06-04-2007 à 15:44:52    

antac a écrit :

Alors en gros le principe, tu fais une exportation Excel, le fichier va être généré par le serveur et apparaitre en téléchargement il l'ouvre et s'ouvre automatiquement avec le programme qui gère les xls (Excel, OpenOffice Calc par exemple).


 
Oui c'est ça... Sachant que dans mon cas, le programme qui gère les xls sera Excel...

Reply

Marsh Posté le 06-04-2007 à 15:44:52   

Reply

Marsh Posté le 06-04-2007 à 16:32:57    

Sinon c'est réalisable avec ActiveX ? difficile à mettre en place dans mes 2 cas ? (voir mon premier post)

Reply

Marsh Posté le 06-04-2007 à 16:35:21    

la solution que j'ai donné dès le départ marche comme ça (grrrr)
 
la solution activex est la solution ultime, mais c'est aussi la plus complexe à développer, surtout, la plus difficile à déployer, donc évite autant se faire se peut


Message édité par MagicBuzz le 06-04-2007 à 16:35:56
Reply

Marsh Posté le 10-04-2007 à 11:12:11    

Bon voila ce que j'ai fait:
 
- j'ai ouvert excel pour faire un tableau de test que j'ai enregistré en .html
- je l'ai ensuite "transformé" en .asp en rajoutant le code suivant dans l'entête:

Citation :

<%  
Response.ContentType = "application/vnd.ms-excel"
%>


Ce code étant censé faire en sorte que le document soit ouvert avec excel....
 
Le problème c'est qu'il m'ouvre bien mon tableau excel mais dans la page du navigateur... Le logiciel Excel lui-même ne se lance pas
 

Reply

Marsh Posté le 10-04-2007 à 14:10:23    

il faut ajouter aussi que le document doit être "attached".

Reply

Marsh Posté le 10-04-2007 à 14:59:12    

Tu connais la syntaxe pour le spécifier stp ?

Reply

Marsh Posté le 11-04-2007 à 08:37:57    

Finalement c'est seulement sur IE que j'ai mon problème d'ouverture, sur Mozilla Firefox sa marche...

 

... à l'exeption d'un petit problème:
Quand j'ouvre ma page avec Mozilla Firefox, mon tableau excel s'affiche sous excel (jusque là tout va bien)... le soucis c'est qu'un fichier excel est crée dans un dossier "temp"

Citation :

C:\Documents and Settings\nom_utilisateur\Local Settings\Temp


Et si je ferme mon fichier excel qui a été ouvert, le fichier temporaire reste présent... Cela pourrait me poser des soucis, mais c'est pas le plus important...

 

Le gros problème est sous IE:
Quand j'ouvre ma page avec IE, j'ai un truc assez bizarre: mon fichier excel s'ouvre dans mon navigateur IE (au lieu de s'ouvrir dans excel)... Cependant j'ai des éléments du logiciel excel présents (le petit logo d'aide en bas à droite, la barre de navigation en haut contient a la fois des éléments du navigateur et des éléments du logiciel excel... :( )... Et le plus beau, j'ai des icones Mozilla qui apparaissent en haut à droite et dans ma barre des taches)... Conclusion, j'ai un joli mix entre IE, FF et Excel...
Pour faire plus simple qu'une description, voici un screen:
http://www.casimages.com/img/jpg/mini_070411093100467609.jpg

 

Sinon ce qui est bien avec IE, c'est que mon fichier temporaire "s'auto-détruit" lorsque je le referme.
Par contre un fichier texte se crée avec le contenu suivant:

Citation :

04/11/2007 09:04:12
Server error: L'URL "/test.asp" ne fait pas partie d'un site Web FrontPage.

 

Si quelqu'un a une idée du pourquoi du comment de mon "bug" avec IE...


Message édité par jadorelescss38 le 11-04-2007 à 09:36:18
Reply

Marsh Posté le 11-04-2007 à 10:50:12    

UP  :)

Reply

Marsh Posté le 11-04-2007 à 13:02:29    

pour le fichier xls qui s'ouvre dans IE, c'est "normal".

Reply

Marsh Posté le 11-04-2007 à 14:27:21    

Bin c'est pas ce que je souhaite obtenir en tout cas...

Reply

Marsh Posté le 11-04-2007 à 14:37:34    

d'où le attached. cherche dans google un peu, j'ai pas le courage de chercher

Reply

Marsh Posté le 30-07-2007 à 13:13:16    

Je répond tres tard mais bon, j'ai eu le problème également (et ca peut intéresser du monde) Voici ma page download.php qui spécifie à IE d'ouvrir en utilisant Word (dans mon cas)
<?php
// Module name : download.php
// This allows to download a doc file and show it with Word to prevent loading in an Internet Explorer screen
 
$lstrUrlFile=$_GET['file']; //Collect URL file
$lintPrjIdn=$_GET['prj']; //Collect Prj number
$lstrtypedoc = explode(".", $lstrUrlFile); //If it's a word file, specify to run msword out from Internet Explorer, get extension of the file
// Separate fields
$lstrtypedoc  = $lstrtypedoc[1];
if ($lstrtypedoc=="doc" )  
{
 if (eregi('msie', $HTTP_USER_AGENT) && !eregi('opera', $HTTP_USER_AGENT))      // Internet Explorer  $navigateur="Internet Explorer"; }
 {
 ?>
  <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
  <!--
  function runword()
  {
  var oSH = new ActiveXObject("WScript.Shell" );
  oSH.Run("winword.exe <?php echo "http://win2kaal/".$lstrUrlFile?>" );
  window.location.replace(
   <!--"http://win2kaal/uploaddoc.php?prj=<?php echo $lintPrjIdn?>" );

  }
  //-->
  runword()
  </SCRIPT>
 <?php  
 }  
 else
 {
  header('location: '.$lstrUrlFile); //If it's firefox or another browser, just use a header
 }
}
else
{
 header('location: '.$lstrUrlFile);//If it's not a doc file, just use a header
}
?>


Message édité par antac le 30-07-2007 à 13:13:44
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed