1

Bonjour,

Je cherche à savoir comment ouvrir un fichier excel (en ouvrant Excel) en cliquant sur un lien. Je ne suis pas sur que ca soit faisable en ASP mais je demande sur ce forum tout de même (peut être en javascript ?).

2

Quelqun corrigera si je me trompe vu que ce n'est pas trop mon rayon, mais je pense qu'en ASP c'est impossible (technologie serveur, tu ne pourras pas ouvrir quoi que ce soit chez le client), et en Javascript ça devrait être faisable mais en passant par ActiveX, donc uniquement compatible avec Internet Explorer :
<script language="javascript">
    <!--
        function exec (cmd)
        {
            new ActiveXObject ("WScript.Shell").run (cmd)
        }
    -->
</script>

<input onclick="exec('excel.exe mon_fichier.xls')" type="button" value="Ouvrir">
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

Faut-il que je mettent le chemin absolu ou relatif? Excel s'execute bien donc c'est génial, jte remercie. Mais il trouve pas le fichier....

4

tu voudrais qu'il soit relatif à quoi ? il faut obligatoirement le mettre en absolu
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

lol je sais pas a mon fichier HTML ... lol. Nan? Grosse connerie ? A priori oui ....

6

Bon c'est bizarre
D'un cote je recupere le répertoire dans lequel est mon fichier dans une variable dir
D'un autre coté je récupere le nom du fichier
Je concatene les deux variables, je fou un \ entre les deux. Et je l'affiche :

F:\le\chemin\vers\le\fichier.xls --> donc je me dit que c'est parfait

Je met exactement ca dans le onClick. Et excel me répond :

impossible d'ouvrir F:lecheminverslefichier.xls .

En gros il enleve tous les \ ...

Bizarre

7

C'est un problème d'échappement des caractères... double tous tes \
avatar

8

ou remplace les par des "/"
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

9

<%Function DoubleSlash(chaine)
  chaine = Replace(chaine, "\", "\")  //chaine = Replace(chaine, "\", "/")
  DoubleSlash = chaine
End Function%>
....
<%DoubleSlash(dir)%>
....
<%for each f in fic%>
      ....
      < href="#" onclick="exec('excel.exe <%=dir&"\"&f.name%>')">lien</a>
      ....
<%next%>
....


N'a pas l'air de marcher (enfin ca ne double pas les "\").

Je viens de commencer l'asp .... Soyez indulgent avec moi lol smile


10

Et avec :
<%Function DoubleSlash(chaine)
  chaine = Replace(chaine, "\", "\\")  //chaine = Replace(chaine, "\", "/")
  DoubleSlash = chaine
End Function%>
....
<%DoubleSlash(dir)%>
....
<%for each f in fic%>
      ....
      < href="#" onclick="exec('excel.exe <%=dir&"\"&f.name%>')">lien</a>
      ....
<%next%>
....
?
avatar

11

les commentaires en asp c'est pas quote (') ? confus

12

Nan c'était pas ca le probleme, je connais pas bien l'ASP mais il suffisait apparement de faire :

<%dir2= DoubleSlash(dir)%> 
.... 
<%for each f in fic%> 
      .... 
      < href="#" onclick="exec('excel.exe <%=dir2&"\"&f.name%>')">lien</a> 
      .... 
<%next%> 
.... 


au lieu de

<%DoubleSlash(dir)%> 
.... 
<%for each f in fic%> 
      .... 
      < href="#" onclick="exec('excel.exe <%=dir&"\"&f.name%>')">lien</a> 
      .... 
<%next%> 
.... 


La fonction marche bien.

Mais il trouve toujours pas le fichier... Problème d'URL... Mais pourtant "dir" est le répertoire que me renvoie ASP quand je fais:

directory = "data/"
 dir = Server.MapPath(directory)


Et c'est vrai que je viens de tester la valeur de "div" ne correspond a aucune URL valide quand je la teste dans mon novigateur ou explorer.

Alors pourquoi ASP me renvoie un URL comme ca ?

Le fichier que j'essaye de lire est sur un intranet, sur un serveur distant....

13

<%DoubleSlash(dir)%> ne fait rien du tout !
<% dir= DoubleSlash(dir) %> en revanche, fait qq chose... embarrassed

14

Pen^2 (./11) :
les commentaires en asp c'est pas quote (') ? confus


lol si si j'ai écrit ca a l'arrache après, mais c'était pas comme ca dans mon code lol

15

Pen^2 (./13) :
<%DoubleSlash(dir)%> ne fait rien du tout !
<% dir= DoubleSlash(dir) %> en revanche, fait qq chose... embarrassed


Bon ben on a répondu deux fois en meme tps... En tous cas le problème se trouvais en effet ici..


Sinon t'aurais une idée pour l'autre problème d'URL ?

16

double cross ! quel joli combo trilove

Toujours est il que pour ton problème, c'est normal que la fonction javascript ne trouve pas ton fichier : le javascript est exécuté côté client, donc la fonction javascript recherche sur ton disque dur.

Or MapPath, qui est une fonction ASP (donc exécuté côté serveur), renvoit le chemin du fichier sur le disque dur du serveur. Ça ne risque pas de fonctionner.


Dans l'idée, il faudrait faire : <input onclick="exec('excel.exe http://www.monserveur/monrertoire/mon_fichier.xls')" type="button" value="Ouvrir">
Toutefois, je ne sais pas si on peut ouvrir un fichier distant. Avec un peu de chance, on doit pouvoir.

17

une requete en ajax sinon pour recup le fichier ?

18

(je ne connais pas du tout l'ajax, faudrait que je me renseigne zzz)

19

Tu veux faire ce genre de truc rintintin?
http://www.expertsrt.com/tutorials/Rod/JSread.php

20

Pen^2 (./16) :
Dans l'idée, il faudrait faire : <input onclick="exec('excel.exe http://www.monserveur/monrertoire/mon_fichier.xls')" type="button" value="Ouvrir">


Cela marche très bien, si je fixe l'url "web" de mes fichiers. Le probleme c'est que mes fichiers ne sont pas toujours les mêmes et ils ne sont pas pas forcément dans les mêmes répertoires... BOUARF.
Bon ca marche déja pour les fichiers qui sont à la racine, c'est déja pas mal...

21

l'idée est alors d'écrire l'URL avec un script ASP.
Ça donne qq chose du genre :
<%
function getMyFilePath()
  getMyFilePath= "ton chemin à générer à la volée"
end function
%>

<input onclick="exec('excel.exe http://www.monserveur/<%= getMyFilePath() %>')" type="button" value="Ouvrir">

22

Tous marche très bien .... Mais il y a un autre truc qui megène maintenant .... Une fois que la personne à ouvert le fichier Excel, elle peut par exemple faire enregistrer sous et faire un peu ce quelle veut dans les répertoires parents... En tous cas elle peut voir tout ce qu'il y a sur le disque du serveur ou il y a le fichier Excel... Ca ne me plait pas trop... J'ai déja vu des trucs de ce style qui ne posent pas de problème de ce genre. Par exemple, si la personne décide d'"enregister sous" le fichier Excel, elle peut l'enregistrer dans le répertoire du serveur où est ce fichier, mais si elle décide de remonter dans les répertoire parent, il se retrouve dans ses propres répertoires qui sont sur sa machine...

Je ne sais pas si je me suis bien fait comprendre. Mais je ne vois pas du tout comment arriver à ca ...