|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 133 ![]() |
Bonjour à tous,
Je cherche à coller des données depuis Excel dans une page web. J'ai des textfield (éléments <input type="text" />) en ligne, et je souhaite que lorsque je copie plusieurs cellules en ligne depuis Excel, cela se colle à raison d'une cellule par textfield, dans ma page web. J'ai des début d'éléments de réponse assez prometteurs, MAIS il reste quelques petits bugs : Code :
- Le premier est que lorsque je colle, tout se passe bien sauf dans la première cellule, toutes les données collées se mettent dans la première cellule, je cherche à savoir comment est-ce que je peux modifier le contenu de mon textfield après que le collage ait eu lieu... - Le deuxième souci est de savoir dans quel cellule est-ce que le collage a eu lieu car si l'utilisateur colle dans la 2ème cellule, le premier souci sera présent mais dans la 2ème cellule cette fois-ci, et les cellules vont se remplir depuis la première (ce qui est normal lorsque l'on regarde mon code, puisque ma boucle for commence à l'élément 0 dans tous les cas). Donc je souhaite connaitre l'élément déclencheur de l'évènement...Merci d'avance !!! *** EDIT : Ne fonctionne QUE sous IE... *** |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Ta regexp est mal construite, il faut doubler l'échappement, ou mieux, utiliser un littéral plutôt qu'un constructeur :
. Mais de toute façon, cela ne sert à rien de passer par une regexp, une simple chaine dans le split suffit et améliorera les performances !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 133 ![]() |
Oui peut-être mais elle fonctionne... Et ce n'est pas là mon problème !!!
Pour récupérer l'évènement j'ai réussi à trouvé quelque chose qui fonctionne mais je ne dis pas que c'est très optimisé... Me reste le problème du premier textfield... Mon code mis à jour : Code :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 808 ![]() |
Citation:
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
d'ailleurs pourquoi supprimer les tabulations, c'est ce qui permet sous excel d'envoyer la suite dans la cellule d'à coté me semble t-il?
|
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 133 ![]() |
Bon je vois que vous n'avez peut-être pas compris le principe... Je me suis peut-être mal exprimé.
J'ai des données dans Excel qui sont dans 5 cellules (de A1 à E1). Je copie ces 5 cellules. J'ai 6 textfield dans une page web. Je souhaite que lorsque je colle mes données sur le premier textfield (le plus à gauche donc) elle se répartissent toutes seules dans les différents textfield (un textfield = une cellule Excel). Donc du coup, seule le 6ème textfield sera vide. Le problème c'est que imaginons que j'ai ceci pour les 5 cellules : A1 : 1 B1 : 2 C1 : 3 D1 : 4 E1 : 5 Lorsque je colle mes données dans le premier textfield (f1) j'obtiens ceci : f1 : 1 \t 2 \t 3 \t 4 \t 5 f2 : 2 f3 : 3 f4 : 4 f5 : 5 (les \t apparaissent comme des tabulations, je n'ai pas la chaine de caractères "\t" qui apparait !). Je souhaite simplement corriger ce qu'il y a dans le premier textfield (f1). Les autres textfields (f2 à f5) fonctionnent bien ! En fait la cause du problème vient du fait que la fonction est appelée AVANT l'action du collé dans le textfield. Donc je peux résoudre ce petit problème en ajoutant à la fin de ma fonction la ligne suivante : Code :
window.clipboardData.setData("Text", notes[0]); |
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
ta solution ne fonctionnerait que si tu insères en sélectionnant le champ #1
il te faut mettre un window.event.returnValue = false; à la fin de ta fonction pasteCol |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 133 ![]() |
Merci ^^
Ta petite ligne de code a la fin est super !!! Merci beaucoup ! Problème résolu ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com